RabbitMQ高级特性
一、消息可靠性投递
在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ为我们提供了两种方式用来控制消息的投递可靠性模式。
- confirm 确认模式
- return 退回模式
rabbitmq整个消息投递的路径为:
producer —>rabbitmq broker ---->exchange ---->queue ---->consumer
- 消息从producer到exchange则会返回一个confirmCallback。
- 消息从exchange —>queue投递失败则会返回一个returnCallback。
我们将利用这两个callback控制消息的可靠性投递。
①confirm 确认模式
可以通过回调函数来确定消息是否被交换机接收成功
② return 退回模式
如果交换机没有将消息放入队列的话,默认设置的是交换机直接将消息进行丢弃,没有任何反馈,所以如果需要反馈给发送方的话,需要设置交换机处理失败消息的模式。