Spring Cloud Stream Artemis Binder配置concurrency后不生效问题咨询
Spring Cloud Stream Artemis Binder并发配置不生效问题解决
原因说明
- 你当前配置的
concurrency是Spring Cloud Stream的通用消费配置参数,snowdrop开源的Artemis Binder并未适配该通用参数,该配置不会被Binder实现层读取。 - 低于2.2.0版本的Artemis Binder本身不支持多消费者并发能力,默认只会初始化1个消费者实例。
- Artemis Binder的并发参数需要配置在Artemis专属的配置路径下,才会被正确加载生效。
解决方法
- 首先将依赖的
spring-cloud-stream-binder-artemis版本升级到2.2.0及以上稳定版本,排除版本本身的功能缺陷。 - 调整消费者application.yml配置,将并发参数移动到Artemis专属配置段,修改后的完整配置参考如下:
spring: main: allow-bean-definition-overriding: true cloud: stream: bindings: r1: destination: exchange group: group1 consumer: max-attempts: 1 # 新增Artemis Binder专属配置段 artemis: bindings: r1: consumer: concurrency: 10 function: bindings: r1Consumer-in-0: r1 definition: r1Consumer
- 重启消费者应用后即可在Artemis控制台看到对应队列的消费者数量变为10,并发配置生效。
内容的提问来源于stack exchange,提问作者Salman
相关产品推荐
相关产品推荐

