首页 > 其他 > 详细

关于rabbitMq确认的那点事

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

平时工作中经常用到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确认的那点事

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!