【问题标题】:Spring boot + Rabbit MQ Process messages paralallySpring boot + Rabbitmq 并行处理消息
【发布时间】:2020-09-06 15:27:28
【问题描述】:

我观察到队列中有多条消息,但我的工作人员正在一条一条地挑选消息,它没有并行处理消息。我在这里做错了什么?我如何处理多条消息以最多使用我的工作进程。有什么最佳做法吗?

我不确定并发值 8 在这里做什么。

application.yml

spring:
  rabbitmq:
    host: 
    port: 
    username: 
    virtual-host: 
    password: 
    listener:
      simple:
        concurrency: 8
        prefetch: 8

Bean 配置:

 @Bean
    Queue queue() {
        return new Queue("testQ", true);
    }

    @Bean
    TopicExchange exchange() {
        return new TopicExchange("testE");
    }

    @Bean
    Binding binding(Queue queue, TopicExchange exchange) {
        return BindingBuilder.bind("testQ").to("testE").with("a.b.c");
    }

    @Bean
    SimpleMessageListenerContainer container(ConnectionFactory connectionFactory,
                                             MessageListenerAdapter listenerAdapter) {
        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        container.setQueueNames("testQ");
        container.setMessageListener(listenerAdapter);
        return container;
    }

    @Bean
    MessageListenerAdapter listenerAdapter(Receiver receiver) {
        return new MessageListenerAdapter(receiver, "handleMessage");
    }

【问题讨论】:

标签: spring-boot rabbitmq


【解决方案1】:

我认为如果您自己在代码中创建 SimpleMessageListenerContainer,那么您可以在代码中指定参数“并发”。例如:

@Bean
SimpleMessageListenerContainer container(ConnectionFactory connectionFactory,
                                         MessageListenerAdapter listenerAdapter) {
    SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
    container.setConnectionFactory(connectionFactory);
    container.setQueueNames("testQ");

    container.setConcurrency("8"); //set 'Concurrency' property for your container

    container.setMessageListener(listenerAdapter);
    return container;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多