zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

【转载】关于RabbitMQ的消息确认

消息RabbitMQ 关于 转载 确认
2023-09-14 08:59:45 时间

      RabbitMQ 将消息投递到客户端后,客户端如果没处理完这个消息就死掉了,这个消息还会不会存在?这取决于 RabbitMQ 的消息确认机制(Message acknowledgment)是否打开。

      为了确保消息不会丢失,RabbitMQ 支持消息确认机制。(在开启了消息确认机制后)客户端需要在收到消息并处理完后,发送一个 ack 消息给 RabbitMQ,告诉它该消息可以被安全删除了。假如客户端在发送 ack 之前意外死掉了,那么 RabbitMQ 会将消息投递到下一个 consumer 客户端。如果有多个 consumer 客户端,RabbitMQ 在投递消息时是轮询的。

      RabbitMQ 如何判断客户端死掉了?唯一根据是客户端连接是否断开。这里没有超时机制,也就是说客户端可以处理一个消息很长时间,只要没断开连接,RabbitMQ 就一直等待 ack 消息。

消息确认机制默认是打开的,除非你设置 no_ack=True 标记来手工关闭它。

通过如下命令查看系统里的未确认消息:


springcloud:springboot整合RabbitMQ|RabbitMQ保证消息可靠性(三) 上一章我们讲解了rabbitmq的四种交换机类型、七种通讯方式。本章我们将整合springboot来向大家完整演示rabbitmq的使用,并说明如何保证消息的可靠性。