首页 > 其他 > 详细

关于rabbitMq确认的那点事

时间:2019-05-21 00:53:23      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:持久   area   码农   class   交换器   消息   安排   product   原理   

平时工作中经常用到queue,但只停于用而不知道原理。对于工作多年码农所忌讳的事。

好。。这里就拿典型的rabbitMQ为研究对象(当然,工作中也一直使用着它)

今天就来说说消息防丢失的事。

首先rabbitMQ消息防丢失有两种手段。

1、事务

2、确认

事务型就不多说了。。类似于DB的事务。。

确认型要设置那些点呢?

1、exchange(交换器)、queue(队列)、msg(消息)都必需设置为持久化

2、consumer(消费方) 设置为手动确认。即autoAck设置为false。 然后开启一个监听ack(确认成功), nack(确认失败)的回调方法。根据自身业务进行再处理。

  那么这时rabbitMQ服务器而言,消息分为两类,

   第一类,等待投给consumer的消息

   第二类,已投给consumer,但还未收到消费者确认信号的消息。

如果 RabbitMQ 一直没有收到消费者的确认信号,并且消费此消息的消费者己经断开连接,则 RabbitMQ会安排该消息重新进入队列,

等待投递给下一个消费者,当然也有可 能还是原来的那个消费者。

 

3、producter(生产方)开启确认模式(confirm)用来确认MSG是否正确到达rabbitMQ. 开启一个监听ack(确认成功), nack(确认失败)的回调方法。根据自身业务进行再处理。

关于rabbitMq确认的那点事

标签:持久   area   码农   class   交换器   消息   安排   product   原理   

原文:https://www.cnblogs.com/tywei/p/10897463.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号