【发布时间】:2020-09-24 18:59:54
【问题描述】:
我正在尝试使用 JMS 使用来自三个 IBM MQ 队列的消息。
所以,我的 Spring Boot 应用程序中有三个 @JmsListener。
我对此表示怀疑,如果所有消费者都可以从各自的队列中消费,他们将如何表现。
- 会有并发吗?
- 如果不是从队列中并发消费的最佳方式是什么,因为我负担不起应用程序的串行执行。
提前致谢:)
【问题讨论】:
标签: spring spring-boot jms ibm-mq
我正在尝试使用 JMS 使用来自三个 IBM MQ 队列的消息。
所以,我的 Spring Boot 应用程序中有三个 @JmsListener。
我对此表示怀疑,如果所有消费者都可以从各自的队列中消费,他们将如何表现。
提前致谢:)
【问题讨论】:
标签: spring spring-boot jms ibm-mq
在 JmsListener 注解上可以设置并发行为:
并发
公共抽象字符串并发
侦听器的并发限制(如果有)。覆盖值 由用于创建侦听器的容器工厂定义 容器。并发限制可以是“上下”字符串——对于 例如,“5-10”——或简单的上限字符串——例如,“10”, 在这种情况下,下限为 1。
请注意,底层容器可能支持也可能不支持所有 特征。例如,它可能无法扩展,在这种情况下 只使用上限。
每个监听器都在自己的线程中运行。
您可以通过打印收到的消息轻松地对此进行测试。这将输出它运行的线程。例如:
2020-06-06 11:26:54.339 INFO 23404 --- [enerContainer-1] c.e.d.ShippingService : Hello World!
线程名称是[enerContainer-1]
请阅读更多关于 Spring 和 JMS 的文档https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#jms-receiving
【讨论】: