RabbitMQ高级特性--消息如何保障100%的投递成功

2019-08-18  本文已影响0人  叫我胖虎大人

什么是生产端的可靠性投递?

生产端-可靠性投递(一)

BAT/TMD互联网大厂的解决方案:
消息落库,对消息状态进行打标
(需要对数据库持久化两次,消息状态的修改)


BIZ DB(业务数据库)
MSG DB(消息数据库)

生产端-可靠性投递(二)

保证MQ我们思考如果第一种可靠性投递,在高并发的场景下是否合适

在第一种情况下,高并发的情境下,数据库的两次写操作和读取操作会存在数据库IO瓶颈

解决方案
消息延迟投递,做二次确认,回调检查

目的是为了减少像方案一中的数据库操作

Upstream service:上游服务,可能为生产端
Downstream service:下游服务,可能为消费端
MQ Broker:可能为集群
Callback service:回调服务,监听confirm消息,独立的服务
下述直接假定上述可能

方案二主要目的是为了减少对数据库的操作,提高并发量。 而不是关心消息是不是能够100%的投递成功.
参考课程:https://coding.imooc.com/class/262.html

上一篇 下一篇

猜你喜欢

热点阅读