零、完成时间
2020-06-18 18:00:00
一、BoringMQ 码云地址
BoringMQ-Server
BoringMQ-Client
二、BoringMQ使用到的技术
- jdk8
- maven
- nio
- juc
- hutool工具包:hutool官网
三、BoringMQ 1.0.0-RELEASE 功能
3.1客户端功能
- 支持心跳检查、重连机制
- 支持发送同步文本消息,可以知道服务器是否接收成功
- 支持Queue消息和Topic消息
- 支持监听Queue消息和Topic消息
- 可配置单个Queue/Topic的最大消息数
- 可配置单个消息最大字节数
- 可配置超时等待时间
- 可配置心跳间隔时间
3.2服务端功能
- 仅使用内存保存消息,重启消息挂扑
- Queue消息随机选择一个消费端发送消息
- 可配置单个消息最大字节数
- 可配置端口
四、个人编写心得
一开始复习了一把NIO的使用,遇到了空轮询bug并解决了它。接着是selector轮询器的使用注意事项,比如注册读时间以后必须注册个写事件来阻塞它、一个channel可以无限写,不用每次写都注册个读时间。
然后就是怎么把消息分发到各个消费端,消费端怎么拿到服务器的对应消息。还有就是创建消息模型和监听消息时的先后顺序问题。比如先是消费端启动,服务器上此时还没有对应的消息,这时就需要等待、再比如一个消费端断联了怎么办,服务器断联了怎么办。好像直接写不清楚,反正很麻烦就是了。
最后就是一定要自己写个项目吧,不管难度如何,从中能学到很多东西。
五、下个版本功能
- 异步发送消息
- 可配置服务器Queue消息发送策略
- 可配置消息队列达到最大值的处理策略
- 能把消息保存到Mysql
- 来个死信队列
- 优化点边边角角
来源:oschina
链接:https://my.oschina.net/u/3367603/blog/4312512