RabbitMQ消息的投递路径:
其中;
- 消息从producer到exchange会返回一个confirmCallback
- 消息从exchange到queue会返回一个returnCallback
如果成功返回True,失败则返回False。
我们用这两个callback控制消息的可靠投递。
confirmCallback的开启:
步骤:
1.ConnectionFactory中开启publisher-confirms="true";
2.在rabbitTemplate中定义confirmCallback回调函数
returnCallback的开启:
步骤:
1.ConnectionFactory中开启publisher-returns="true";
2.设置exchange处理消息的模式
rabbitTemplete.setMandatory(true)---指定使用模式2
模式1:如果消息没有路由到Queue则丢弃消息(默认)
模式2:如果消息没有路由到Queue则触发returnCallback回调函数
3.在rabbitTemplate中定义returnCallback回调函数