美文网首页
2-2 SimpleMessageListenerContain

2-2 SimpleMessageListenerContain

作者: Finlay_Li | 来源:发表于2020-07-13 19:45 被阅读0次

简介

简单消息监听容器 == 装载消费者

作用

  • 可以监听队列(多个队列)
  • 设置事务特性、事务管理器、事务属性、事务容量、是否开启事务、回滚消息等。
  • 设置消费者数量、最小最大数量、批量消费。
  • 设置消费者标签生成策略、是否独占模式、消费者属性等。
  • 设置消息确认和消息签收模式、是否重回队列、异常捕获Handler函数。
  • 设置具体的监听器、消息转换器等等。
  • 注意:SimpleMessageListenerContainer可以进行动态设置,比如在运行中的应用可以动态的修改其消费者数量的大小、接收消息的模式等。
    很多基于RabbitMQ的自制定化后端管控台在进行动态设置的时候,也是根据这个动态设置特性去实现的。所以可以看出SpringAMQP非常的强大。

示例

    //注意: 优先级比 Queue 的Receiver低
    @Bean
    public SimpleMessageListenerContainer simpleMessageListenerContainer(ConnectionFactory connectionFactory) {
        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
        //1. 设置监听的队列
        container.setQueueNames("topic.que", "fanout.que");
        // 2. 设置消费者数量,默认就是1
        container.setConcurrentConsumers(1);
        container.setMaxConcurrentConsumers(5);
        // 4. 设置消息是否重回队列
        container.setDefaultRequeueRejected(false);

        // 5. 设置消息的签收模式
        container.setAcknowledgeMode(AcknowledgeMode.AUTO);

        // 6. 消费消息
        container.setMessageListener((ChannelAwareMessageListener) (message, channel) -> {
            String msg = new String(message.getBody());
            System.out.println("*******消费者*******:" + msg);
        });

        return container;
    }

相关文章

网友评论

      本文标题:2-2 SimpleMessageListenerContain

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