java - 如何使用 Spring Boot 让多个线程从 RabbitMQ 队列中获取数据?

标签 java spring-boot rabbitmq

我们的应用程序使用 RabbitMQ 提供的多个队列中的数据。为了提高吞吐量,我们为每个队列启动多个线程,这些线程会阻塞从这些队列中获取数据。

对于新服务,我们希望使用 Spring Boot,并且每个队列有多个线程从这些队列中获取数据。以下是用于处理从某个队列到达的数据的规范 Spring Boot 代码:

@StreamListener(target = Processor.INPUT)
@SendTo(Processor.OUTPUT)
public Message<SomeData> process(Message<SomeData> message) {
    SomeData result = service.process(message.getPayload());
    return MessageBuilder
            .withPayload(result)
            .copyHeaders(message.getHeaders())
            .build();
}

现在的问题是如何让 Spring Boot 生成多个线程来服务一个队列而不是单个线程。吞吐量对于我们的应用程序非常关键,因此需要这样做。

最佳答案

检查available properties ,搜索rabbitmq。

spring.rabbitmq.listener.simple.concurrency= # Minimum number of listener invoker threads

看起来很有希望

关于java - 如何使用 Spring Boot 让多个线程从 RabbitMQ 队列中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54803033/

相关文章:

java - HTMLDocument、HTMLEditorKit 和空格

java - 如何在 Spring Boot 中将 HikariCP 与两个数据源结合使用 Flyway

spring-boot - 将 Spring Boot 应用程序部署到 digital ocean

java - 如何使用 RabbitMQ JMS 客户端从现有的 JMS 应用程序连接到 RabbitMQ?

spring - 使用 STOMP 订阅主题 Spring WebSocket 时未创建动态队列?

java - 弱引用与设置为 Null

java - 如何添加数组,我将在其中输入项目并显示数据,而不是静态数组,我希望它是动态的

java - Spring Boot 测试 - 没有合格的 Bean 异常

kotlin - Apache Camel RabbitMQ 将线程留在等待状态

java - 在 ANTLR 3 中,如何在运行时而不是提前生成词法分析器(和解析器)?