spring-cloud-starter-stream-rocketmq消费者不支持批量消费的解决方案
·
1. 先说解决方案
需要批量消费的消费者,使用rocketmq-spring-boot-starter的配置代替stream。
基于rocketmq-springboot-starter实现消费者批量消费
https://juejin.cn/post/7413694742767943716

注意批量消费的消费者应该单独配置(如下图),不要配置在stream下面(如上图)
2. 带来的问题

rocketMQ-springboot-starter中的rocketmq-client版本需要5.3.0(上图)

而在stream中依赖的client版本为5.1.4,打包项目查看依赖树,发现引入的rocketmq版本为5.1.4,项目启动报错,缺少setnamespaceV2方法,查看5.3.0版本原码发现存在setnamespaceV2方法,接下来解决依赖冲突。


尝试两种方式:1.排除stream中的rocketclient 2.直接引入5.3.0版本, 打包查看依赖树发现依然引入的5.1.4版本, 怀疑其他地方存在rocketclient版本仲裁,最终在项目根目录pom文件中找到问题所在。 
由于是一个分布式的项目,根目录pom中引入了springcloudalibaba, 其中对rocketmq的版本做了仲裁为5.1.4,解决方案就是在根目录的pom文件中引入5.3.0的rocketmq。如果你使用的cloudalibaba版本为2023.0.3.2则不会出现上述问题。
更多推荐
所有评论(0)