消息队列RabbitMQ之防止消息丢失
大家好,我是joker,希望你快乐。
消息队列组成
使用消息队列会有三部分:消息生产者,消息队列,消息消费者,接下来说下各部分防止消息丢失的方法。
生产者
消息生产者发送消息失败。发布确认机制,RabbitMQ会返回一个ACK标识。
消费者
消息消费者获取消息后,消费失败。开启手动确认的方式,消息成功消费后,手动提交ACK标识给RabbitMQ
消息队列
-
开启持久化。
-
Exchange 设置持久化
-
Queue 设置持久化
-
Message持久化发送:发送消息设置发送模式deliveryMode=2,代表持久化消息
-
-
镜像模式:消息会同步到其他节点上,可以设置同步的节点个数,但吞吐量会下降。属于RabbitMQ的HA方案,三种HA策略模式:
-
同步至所有的
-
同步最多N个机器
-
只同步至符合指定名称的nodes
-
-
消息补偿机制
生产端首先将业务数据以及消息数据入库,需要在同一个事务中,消息数据入库失败,则整体回滚。
根据消息表中消息状态,失败则进行消息补偿措施,重新发送消息处理。
作者:Crazy_Joker
来源:http://www.cnblogs.com/Crazy_Joker
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
来源:http://www.cnblogs.com/Crazy_Joker
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。