消息可靠性投递
消息的可靠性投递主要是保证消息投递的每一个环节都要成功
RabbitMQ整个消息投递路径为
Producer-》Broker-》Exchange-》Queue-》Consumer
生产者到交换机
Producer发送到Exchange的过程依靠RabbitMQ的Confirm机制来确保可靠性
生产者投递消息到了Broker里的Exchange交换机,会给生产者一个confirmcallback,交换机收到消息后会调用回调函数
spring.rabbitmq.publisher-confirms:true
交换机到队列
Exchange交换机到Queue队列这段消息的可靠性投递需要依靠Return机制来保障
spring.rabbitmq.publisher-returns:true
使用ReturnCallback设置退回函数,当消息从Exchange到Queue失败后,则会将消息退回给Producer,并执行回调函数ReturnMessage
队列持久化存储
(1)将队列属性设置为Durable,即可将数据持久化到硬盘上
队列高可用
(2)镜像队列+集群模式
ha-mode=all(所有节点都存储数据)
ha-sync-mode=automatic(新加入节点同步master队列全部数据)
数据一致性
事务机制 Or Confirm机制(Return机制)+持久化+仲裁队列(分区时保障数据一致性)
标签:Exchange,队列,知识,RabbitMQ,投递,交换机,消息,经典
From: https://www.cnblogs.com/iamxiaofu/p/18121825