BoringMQ 1.0.0-RELEASE 介绍

和自甴很熟 提交于 2020-07-29 03:01:51

零、完成时间

    2020-06-18 18:00:00

一、BoringMQ 码云地址

    BoringMQ-Server
    BoringMQ-Client

二、BoringMQ使用到的技术

  1. jdk8
  2. maven
  3. nio
  4. juc
  5. hutool工具包:hutool官网

三、BoringMQ 1.0.0-RELEASE 功能

  3.1客户端功能

  1. 支持心跳检查、重连机制
  2. 支持发送同步文本消息,可以知道服务器是否接收成功
  3. 支持Queue消息和Topic消息
  4. 支持监听Queue消息和Topic消息
  5. 可配置单个Queue/Topic的最大消息数
  6. 可配置单个消息最大字节数
  7. 可配置超时等待时间
  8. 可配置心跳间隔时间

  3.2服务端功能

  1. 仅使用内存保存消息,重启消息挂扑
  2. Queue消息随机选择一个消费端发送消息
  3. 可配置单个消息最大字节数
  4. 可配置端口

四、个人编写心得

    一开始复习了一把NIO的使用,遇到了空轮询bug并解决了它。接着是selector轮询器的使用注意事项,比如注册读时间以后必须注册个写事件来阻塞它、一个channel可以无限写,不用每次写都注册个读时间。
    然后就是怎么把消息分发到各个消费端,消费端怎么拿到服务器的对应消息。还有就是创建消息模型和监听消息时的先后顺序问题。比如先是消费端启动,服务器上此时还没有对应的消息,这时就需要等待、再比如一个消费端断联了怎么办,服务器断联了怎么办。好像直接写不清楚,反正很麻烦就是了。
    最后就是一定要自己写个项目吧,不管难度如何,从中能学到很多东西。

五、下个版本功能

  1. 异步发送消息
  2. 可配置服务器Queue消息发送策略
  3. 可配置消息队列达到最大值的处理策略
  4. 能把消息保存到Mysql
  5. 来个死信队列
  6. 优化点边边角角
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!