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则不会出现上述问题。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐