如何保证消息的可靠性,能百分百保证消息的可靠性吗

保证消息的可靠性可以从几个方面去处理
1.首先在发送消息时开启重试策略,避免因为短暂的网络问题导致发送消息失败。
2.生产者开启确认机制,即开启confirm机制和return机制,这样每个消息都有自己的一个confirm机制,
如果消息正确到达交换,返回ack,未到达交换机,返回nack。如果消息未正确到达队列,则触发return机制,全局只有一个return机制。
在发送消息时为消息设置一个唯一ID,并设置回调方法,当confirm机制返回nack或者return机制失败后,把消息写入数据库,并通过定时任务扫描异步发送,
如果依旧失败则人工处理
3.设置消息持久化,交换机和队列都是默认持久化的,在发送消息时设置delivery_mode=2,消息进行持久
4.消费者开启自动确认机制,开启重试策略,当重试次数耗尽后,将会将失败消息投递到固定交换机,通过交换机将失败消息转发到失败消息列表,
监听失败消息列表,接收到失败消息后存入数据库交由定时任务处理。

无法保证消息百分百可靠,所以使用MQ都是针对那些对数据一致性要求不是很高的场景,当消息丢失,通过补偿措施保证数据最终一致性。

posted on 2025-03-22 15:24  笙3146487032  阅读(59)  评论(0)    收藏  举报