当前位置: 代码迷 >> 综合 >> MQ消息队列详解17:消息队列手动确认Ack
  详细解决方案

MQ消息队列详解17:消息队列手动确认Ack

热度:71   发布时间:2024-02-02 05:21:13.0

以RabbitMQ为例,默认情况下 RabbitMQ 是自动ACK机制,就意味着 MQ 会在消息发送完毕后,自动帮我们去ACK,然后删除消息的信息。
这样依赖就存在这样一个问题:
如果消费者处理消息需要较长时间,最好的做法是消费端处理完之后手动去确认。

1、配置文件:

  rabbitmq:host: ${yun.activity.rabbitmq.host}port: ${yun.activity.rabbitmq.port}username: ${yun.activity.rabbitmq.username}password: ${yun.activity.rabbitmq.password}virtual-host: ${yun.activity.rabbitmq.virtual-host}publisher-confirms: truepublisher-returns: truetemplate:mandatory: truelistener:simple:acknowledge-mode: manual

通过acknowledge-mode: manual 设置为手动设置Ack模式。


2、消费者:

    @RabbitListener(queues = "activity-eleven-first-notify", containerFactory = "activityElevenCainerFactory")public void processNormalOrder(Message message, Channel channel) {try {dealInfo(message);
  相关解决方案