【问题标题】:Micronaut and RabbitMQMicronaut 和 RabbitMQ
【发布时间】:2021-07-02 11:46:14
【问题描述】:

我正在开发一个使用 Micronaut 并且需要使用来自 RabbitMQ 队列的消息的应用程序。问题是队列可以提供很多消息,所以我想要一个参数化的消费者实例数。

例如以下代码自动生成消费者的一个实例:

    @RabbitListener
    public class TestConsumer {
    
    
     @Queue("TestQueue")
     public void handleMessage(String message) {
        // some treatment
     }
    }

有没有办法告诉 micronaut 实例化多个实例?

【问题讨论】:

    标签: rabbitmq micronaut micronaut-rabbitmq


    【解决方案1】:

    如果我理解正确,您想配置多少线程消耗队列中的消息。您可以通过您在 application.yml 中配置的执行器来执行此操作

    请参阅micronaut-rabbitmq docu 中的以下示例。

    @RabbitListener
    public class ProductListener {
    
        List<String> messageLengths = Collections.synchronizedList(new ArrayList<>());
    
        @Queue(value = "product", executor = "product-listener") 
        public void receive(byte[] data) {
            messageLengths.add(new String(data));
            System.out.println("Java received " + data.length + " bytes from RabbitMQ");
        }
    }
    

    使用 application.yml

    micronaut:
        executors:
            product-listener:
                type: fixed
                nThreads: 25
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多