rocketmq实现延迟队列精确到秒级实现方案1-代理实现

 

简单的来说,就是rocketmq发送消息到broker的时候,判断是否定时消息,

     如果是定时消息,将消息发送到代理服务(这个是一个独立的服务,需要自己开发,定时地把消息发送出去),

当然了消息用什么来保存呢?
可以是数据库,redis等等,不过我推荐采用文件,因为消息可能会比较多,需要保存一定的时间,可以考虑RocksDB,这个效率非常的高效。

用什么来通信呢,我觉得 netty 比较好,当然了http也是可以的。

这种方式实现的好处是,不需要修改rocketmq服务端,修改发送消息的mq客户端就可以,

如果延迟消息很多的话,可以水平的扩展服务器,多台代理机器来发送消息

 

 

 

 

开源rocketmq延迟队列实现: 

https://gitee.com/venus-suite/rocketmq-with-delivery-time.git

 

posted @ 2022-01-17 20:12  tomj2ee  阅读(233)  评论(0编辑  收藏  举报