【踩坑记录】spring.cloud.stream.default.consumer.concurrency不生效

问题


最近公司项目中遇到一个问题,就是kafka客户端的消费能力低的问题,项目中是在spring cloud stream中整合kafka使用的,由于消费能力低,导致单条消息处理时间比较长,在压测的时候,大量消息堆积,引发了一系列问题。

处理过程


由于使用的spring cloud微服务框架,国内大部分网站上都搜索不到有用的信息,只能寄希望于官网文档(spring真是太庞大了,眼花缭乱),碍于英文能力比较弱,只能大体看看,找到了相关配置说明,在spring cloud stream中的yml配置文件中添加了如下配置,希望能够并发处理kafka的消息,提高客户端的消费能力

spring: 
    cloud: 
        stream: 
            default: 
                consumer: 
                    concurrency: 5

但是,生活总是不能让你如意(依旧要保持微笑 ^_^ ),当启动stream微服务时,我在控制台输出了下列警告:
The number of expected partitions was: 5, but 1 has been found instead.There will be 4 idle consumers
从输出的内容上看,之前添加的配置应该是没有生效,这让我很困惑(千万只神兽"轻轻地"走过)

解决问题


经过多次百度以及google无果之后,无奈之下,在github上spring-cloud-stream-binder-kafka开源项目上提了一个issue
最后皇天不负有心人,终于得到了有用的答复,还需要在添加一个配置才能生效:
spring.cloud.stream.kafka.binder.autoAddPartitions=true
官方参考文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容