technology-integration全面解析

technology-integration(一)---项目简介

2018-08-23  本文已影响989人  海苔胖胖

简介

最近把个人所学会的技术都整合了一下,整合的都是一些常用的技术。男人就是要直接,码云项目地址:https://gitee.com/viu666/technology-integration

该项目为纯后端项目,不涉及任何前端技术,所以需要读者有一定的前后端分离思想。你问我为什么没有搞前端?毕竟男人就是要专一,[滑稽]要搞也是偷偷搞啊,我会告诉你?

技术

该项目以SpringBoot作为项目基础框架,整合的技术有:

  1. Spring Security
  2. Spring Retry
  3. Spring Mail
  4. JWT
  5. Mybatis
  6. Redis
  7. RabbitMQ
  8. Netty


功能

  1. 认证与授权采用SpringSecurity方案,只提供jwt认证方式
  2. 使用了双数据源进行数据读取,采用MySQL数据库
  3. 使用Redis缓存数据,Redis为单节点模式,后期可能会添加主从或集群模式
  4. 使用RabbitMQ搭建队列,由于没有业务逻辑,只是简单的发送消息到队列,以及实现常见的死信队列和监听等
  5. 使用Netty进行客户端通信,已实现完整的聊天功能
  6. 使用阿里云短信服务实现短信验证码功能
  7. 使用Redis对接口进行限流以及PV统计


聊天功能实现进度:

注意:客户端不要求必须使用Netty框架,传输字符即可

  1. 客户端与服务端建立socket连接后需要发送token至服务器进行socket的认证,认证后服务器会返回认证结果的消息
  2. 客户端A与发消息至客户端B时,需要验证socket连接是否已认证
  3. 客户端认证完成后,系统会读取Rabbit未读消息队列,如果存在未读消息则将消息发送至客户端
  4. A发送消息至B时,会先判断B是否在线,如果在线则直接将消息发送到B客户端,否则将消息缓存至未读队列中
  5. 消息发送完之后,系统会将消息存储到durable队列中
  6. 监听器监听到durable队列中有消息时,则会将该消息缓存至数据库中


短信验证码实现:

注意:短信验证码采用6位纯数字

  1. 客户端请求发送短信验证码,服务端会先进行判断该号码上次发送短信时间间隔是否大于2分钟
  2. 发送短信验证码成功后,会将短信验证码缓存到Redis中,方便下次验证
  3. 短信验证码的有效期为5分钟,利用Redis的过期功能实现


系统功能:
  1. 使用Redis进行接口限流,利用zset数据类型解决,具体参照代码
  2. 使用Redis统计系统请求PV量


这个算是方便自己以后复制粘贴代码用的吧,哈哈哈哈哈哈哈,可能不会详细的介绍某个技术,都说了叫整合嘛,你能拿我怎么办。整合方面会讲的详细些,项目里面不会有很具体的业务,尽量保证业务是比较完整的,如果有什么建议或者问题直接在简书发表就好了,想加扣扣啊,你找到我就给你加。

对了,编码软件用的是IDEA

更多文章请关注该 technology-integration全面解析专题

上一篇下一篇

猜你喜欢

热点阅读