分布式Java学习笔记程序员

RocketMQ消费失败消息处理

2017-06-11  本文已影响6041人  lysu

闲着研究了下RocketMQ消费失败消息的处理逻辑这里记录下,更细化说这里只讨论Push模式(其实实现还是Pull的模式)非顺序消费的情况Pull和顺序消息这里暂时不做讨论哈~(还没研究- -)

消费失败处理逻辑

可以看到,重发这种模式是不会丢消息的,即使broker挂了,consumer挂了,一定会消费到,虽然可能获得很多不想要的重复消息- -

为啥这么搞

写本文的原因就是我组几个小伙伴都觉得这个很奇怪,为啥这么弄呢~?个人研究了下理解是这样的....(其实自己刚开始研究RocketMQ很多理解可能有问题,欢迎大家一块讨论学习 哈哈哈)

可以冷静看下当前消息消费场景特点:

完整处理

感觉RocketMQ处理这部分的代码挺巧妙...几个核心参与类:

简单画了个图说明上面几个类的关系~(手指在ipad上画得没有笔所以特别难看- -先将就吧)

Notes - Page 1.png

失败重试的细节好像没画出来,= = 画图不好画。。结合上面描述看代码哈~- -

最终达到的效果

总结

上一篇 下一篇

猜你喜欢

热点阅读