当前位置: 首页>编程语言>正文

spring rabbitmq自动重连设置 rabbitmq 自动ack


文章目录

  • 1. 不做任何ack
  • 2. ack
  • 3. reject
  • 4. Nack


1. 不做任何ack

如果队列使用的是手动ack,但在接收消息后不做任何ack处理,RabbitMQ会把消息标记为 unacked,unacked状态的消息不会被消费,并且占用RabbirMQ资源,只有当消费者channel断开或者服务器重启,消息才会重新回到ready状态被其他消费者消费。

2. ack

确认签收后,消息从队列中删除。

  • 自动ack
    消费者接收到消息的那一刻就发送ack信息到RabbitMQ的队列,队列将此条消息删除。
    自动ack的方式只要队列有消息,RabbitMQ会源源不断的把消息推送给客户端,而不管客户端能否消费的完。
  • 手动ack
    开发人员决定什么时机进行ack。
    如果没有及时进行ack,RabbitMQ会将来不及做ack的消息标记为unacked丢回RabbitMQ,被标记为unacked的消息无法被立刻重新消费,而是要等channel重启或者服务器重启才会变成ready(可消费的消息)。但等待服务器重启这个过程中如果积压了太多unacked消息,会导致MQ响应越来越慢,甚至崩溃的问题。
    解决方式就是及时处理消息

https://www.xamrdz.com/lan/5uw1960368.html

相关文章: