美文网首页
spring boot 整合rabbitmq 实现 ACK 消息

spring boot 整合rabbitmq 实现 ACK 消息

作者: 大梦想家_f964 | 来源:发表于2019-04-06 21:49 被阅读0次

    application.yml 配置 无需在yml 文件中配置 ack 等 属性

    spring:
      rabbitmq:
                host: 127.0.0.1
                port: 5672
                username: guest
                password: guest
    

    初始化一个 rabbitmq 的配置组件

    @Component
    public class RabbitConfig {
    }
    

    配置消费者的 SimpleRabbitListenerContainerFactory

    @Bean(name = "listenerContainer")
    public SimpleRabbitListenerContainerFactory listenerContainer(){
       SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
      // 手动确认模式
       factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
       //todo .... 
       return factory;
    }
    

    配置消费者监听组件

    @Component
    public class RabbitListener{
    }
    

    消费者监听配置

    @RabbitListener(queues = "队列名称" ,containerFactory = "listenerContainer")
    @RabbitHandler
    public void ConsumeMessage(Channel channel, Message message) {
       try {
              //确认收到消息 
           channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
       } catch (Exception e) {
          //.... 可以丢弃消息或重入队列
       }
    }
    

    生产者无需处理是否确认消息

    相关文章

      网友评论

          本文标题:spring boot 整合rabbitmq 实现 ACK 消息

          本文链接:https://www.haomeiwen.com/subject/qkpdiqtx.html