RabbitMQ - [核心] 发布确认

发布确认的原理

 

 

 

发布确认的开启

 

 

发布确认的策略

单个确认发布(同步+阻塞)

 

 

 

 

批量确认发布(同步+阻塞)

 

 

其代码与单个确认相比,仅仅多了批处理的逻辑而已

 

 

 

 

异步确认发布(异步+非阻塞)

 

 

 

代码

 

 

 

如何处理异步未确认消息

 

 

 

 

需要修改的代码

1.在发布之前,把所有的消息先存在ConcurrentHashMap中

 

 

2.把确认成功的消息,从ConcurrentHashMap里删掉,剩下的就是未成功的。

为什么不直接或许未成功了,非要把成功的删掉? -- 猜测是为了保证ConcurrentHashMap里面,可以保证任何时候都能成为“未成功消息”的集合,方便后续做“是否继续重发”的判断

3.把ConcurrentHashMap里的重发(视频教程未写该部分...)

 

posted on 2021-07-09 00:07  frank_cui  阅读(252)  评论(0编辑  收藏  举报

导航

levels of contents