简介
最近把个人所学会的技术都整合了一下,整合的都是一些常用的技术。男人就是要直接,码云项目地址:https://gitee.com/viu666/technology-integration
该项目为纯后端项目,不涉及任何前端技术,所以需要读者有一定的前后端分离思想。你问我为什么没有搞前端?毕竟男人就是要专一,[滑稽]要搞也是偷偷搞啊,我会告诉你?
技术
该项目以SpringBoot作为项目基础框架,整合的技术有:
- Spring Security
- Spring Retry
- Spring Mail
- JWT
- Mybatis
- Redis
- RabbitMQ
- Netty
功能
- 认证与授权采用SpringSecurity方案,只提供jwt认证方式
- 使用了双数据源进行数据读取,采用MySQL数据库
- 使用Redis缓存数据,Redis为单节点模式,后期可能会添加主从或集群模式
- 使用RabbitMQ搭建队列,由于没有业务逻辑,只是简单的发送消息到队列,以及实现常见的死信队列和监听等
- 使用Netty进行客户端通信,已实现完整的聊天功能
- 使用阿里云短信服务实现短信验证码功能
- 使用Redis对接口进行限流以及PV统计
聊天功能实现进度:
注意:客户端不要求必须使用Netty框架,传输字符即可
- 客户端与服务端建立socket连接后需要发送token至服务器进行socket的认证,认证后服务器会返回认证结果的消息
- 客户端A与发消息至客户端B时,需要验证socket连接是否已认证
- 客户端认证完成后,系统会读取Rabbit未读消息队列,如果存在未读消息则将消息发送至客户端
- A发送消息至B时,会先判断B是否在线,如果在线则直接将消息发送到B客户端,否则将消息缓存至未读队列中
- 消息发送完之后,系统会将消息存储到durable队列中
- 监听器监听到durable队列中有消息时,则会将该消息缓存至数据库中
短信验证码实现:
注意:短信验证码采用6位纯数字
- 客户端请求发送短信验证码,服务端会先进行判断该号码上次发送短信时间间隔是否大于2分钟
- 发送短信验证码成功后,会将短信验证码缓存到Redis中,方便下次验证
- 短信验证码的有效期为5分钟,利用Redis的过期功能实现
系统功能:
- 使用Redis进行接口限流,利用zset数据类型解决,具体参照代码
- 使用Redis统计系统请求PV量
这个算是方便自己以后复制粘贴代码用的吧,哈哈哈哈哈哈哈,可能不会详细的介绍某个技术,都说了叫整合嘛,你能拿我怎么办。整合方面会讲的详细些,项目里面不会有很具体的业务,尽量保证业务是比较完整的,如果有什么建议或者问题直接在简书发表就好了,想加扣扣啊,你找到我就给你加。
对了,编码软件用的是IDEA
网友评论