rabbitmq如何保证消息不丢失
rabbitmq的消息流
信息发送者-交换器-队列-消息消费者
哪个环节都容易丢失消息
- 消息未到交换器
- 消息未到队列
- 队列中的消息丢失
- 消费者未接受到消息
如何判断消息是否丢失?
利用publisher confirm机制来判断。
消息丢失如何处理?
- 回调方法即时重发
- 保存日志
- 保存到数据库然后定时重发,成功发送后即刻删除表中数据
MQ默认是内存存储消息,开启持久化功能可以确保缓存在MQ中的消息不丢失。
交换机持久化
队列持久化
消息持久化
信息发送者-交换器-队列-消息消费者
利用publisher confirm机制来判断。
MQ默认是内存存储消息,开启持久化功能可以确保缓存在MQ中的消息不丢失。
交换机持久化
队列持久化
消息持久化