rabbitmq
Posted xone
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rabbitmq相关的知识,希望对你有一定的参考价值。
消费一个消息可能会花好几秒。你可能会问,如果如果一个消费者启动了一个长的任务,消息发了一半然后死了。按我们现在的代码,一旦rabbitmq传递了一个消息到给消费者,然后rabbitmq就迅速的将这个消息从内存里删除。在这种情况下,如果你kill了一个消费者,我们就会失去了这个正在传递的消息。
但是我们不想失去这个消息。如果一个消费者死了,我想把这个任务传给另一个消费者。
为了确保一个消息从不丢失,rabbitmq支持消息确认。消费者处理完信息后会向rabbitmq发送一个消息确认,这样rabbitmq就可以从内存里删除这个消息了。
如果一个消费者死掉了,没有发ack,rabbitmq就会知道这个消息没有传递成功,就会把这个消息重新存到queue里。
如果此时有其它的消费者在线,rabbitmq就会迅速的将这个消息传递给其它的的消费者。这样就确保了消息没有丢失,即使这个消费者是偶尔挂了。
根本就没有超时时间一说,当那个消费者挂了,rabbitmq会重新转发那条消息。即使这个消息处理了很长时间都没关系。
rabbitmq消息确认默认是开启的,
以上是关于rabbitmq的主要内容,如果未能解决你的问题,请参考以下文章
RabbitMQRabbitMQ和Erlang下载与安装步骤—2023超详细最新版