Spring|Spring Cloud Stream多消费端只有一个实例在消费
环境及现象
使用的是spring cloud stream + kafka的技术栈。
# kafka连接配置
spring.cloud.stream.binders.common.type=kafka
spring.cloud.stream.binders.common.environment.spring.cloud.stream.kafka.binder.brokers=192.168.110.110:9092
spring.cloud.stream.binders.common.environment.spring.cloud.stream.kafka.binder.zk-nodes=192.168.110.110:2181# 消费端配置
spring.cloud.stream.bindings.input.binder=common
spring.cloud.stream.bindings.input.destination=test-issue
spring.cloud.stream.bindings.input.group=group0
spring.cloud.stream.bindings.input.content-type=text/plain
# kafka连接配置
spring.cloud.stream.binders.common.type=kafka
spring.cloud.stream.binders.common.environment.spring.cloud.stream.kafka.binder.brokers=192.168.110.110:9092
spring.cloud.stream.binders.common.environment.spring.cloud.stream.kafka.binder.zk-nodes=192.168.110.110:2181# 生产端配置
spring.cloud.stream.bindings.output.binder=common
spring.cloud.stream.bindings.output.destination=test-issue
spring.cloud.stream.bindings.output.content-type=text/plain
当前kafka是单机部署的,topic由stream自动创建,启动一个生产端,和两个消费端实例。
结果只有一个在消费!!!
其中一个在消费
文章图片
另一个报错
文章图片
解决方案 【Spring|Spring Cloud Stream多消费端只有一个实例在消费】其实问题在于对kafka的机制不够了解,kafka里有个partition的概念,而且默认都是单播模式的,索引呢对于消费端而言,一个消费端会独享一个partition。
所以问题就出在这个partition上了,因为是单机部署,topic由stream自动创建并且没有指定partition,那么这时我在查看topic的partition时发现只有一个partition,又由于一个消费端会独享一个partition那么就造成了现在的问题只有一个消费端在消费。
解决方法也很简单,只要创建多个partition即可。
# 生产者配置,生产清洗后的CDR
spring.cloud.stream.bindings.output.binder=common
spring.cloud.stream.bindings.output.destination=test-issue
spring.cloud.stream.bindings.output.content-type=text/plain
spring.cloud.stream.bindings.output.producer.partition-count=2
文章图片
文章图片
推荐阅读
- SpringBoot|SpringBoot 整合文件上传 elment Ui 上传组件
- Spring 中毒太深,离开 Spring 居然连最基本的接口都不会写了!
- Spring|Spring Cloud Alibaba(02)——Nacos服务注册和配置中心
- spring|Spring Cloud Alibaba——简介
- Java|SpringCloud Alibaba——Nacos注册中心
- SpringCloudAlibaba-Nacos服务注册与配置中心
- Spring|SpringCloud Alibaba 之 Nacos 服务注册和配置中心 详解
- Spring|Spring Cloud Alibaba——Nacos进行多配置文件的加载
- 分布式微服务|Spring Cloud Alibaba Nacos服务注册与配置中心
- spring|Spring Cloud Alibaba——Nacos集群配置