码迷,mamicode.com
首页 > 其他好文 > 详细

rabbitmq

时间:2016-12-23 19:33:34      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:kill   queue   rabbit   丢失   内存   删除   发送   它的   bsp   

消费一个消息可能会花好几秒。你可能会问,如果如果一个消费者启动了一个长的任务,消息发了一半然后死了。按我们现在的代码,一旦rabbitmq传递了一个消息到给消费者,然后rabbitmq就迅速的将这个消息从内存里删除。在这种情况下,如果你kill了一个消费者,我们就会失去了这个正在传递的消息。

但是我们不想失去这个消息。如果一个消费者死了,我想把这个任务传给另一个消费者。

为了确保一个消息从不丢失,rabbitmq支持消息确认。消费者处理完信息后会向rabbitmq发送一个消息确认,这样rabbitmq就可以从内存里删除这个消息了。

如果一个消费者死掉了,没有发ack,rabbitmq就会知道这个消息没有传递成功,就会把这个消息重新存到queue里。

如果此时有其它的消费者在线,rabbitmq就会迅速的将这个消息传递给其它的的消费者。这样就确保了消息没有丢失,即使这个消费者是偶尔挂了。

根本就没有超时时间一说,当那个消费者挂了,rabbitmq会重新转发那条消息。即使这个消息处理了很长时间都没关系。

rabbitmq消息确认默认是开启的,

 

rabbitmq

标签:kill   queue   rabbit   丢失   内存   删除   发送   它的   bsp   

原文地址:http://www.cnblogs.com/xone/p/6215750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!