我已经建立了一个制作人Spring spring stream app和kafka作为活页夹。这是application.yml:
spring:
cloud:
stream:
instanceCount : 1
bindings:
output:
destination: topic-sink
producer:
partitionSelectorClass: com.partition.CustomPartition
partitionCount: 1
...
我有两个实例(在一个jvm上运行相同的应用程序)作为消费者。这是application.yml:
spring:
cloud:
stream:
bindings:
input:
destination: topic-sink
group: hdfs-sink
consumer:
partitioned: true
...
我对kafka群体的理解是,对于同一群体中的消费者,消息只会消耗一次。假设生成器应用程序生成消息A,B并且同一组中有两个消费者应用程序,消费者1将读取消息A,消费者2将读取消息B,C。但是,我的消费者正在消费消息。我的假设是错的吗?
答案 0 :(得分:0)
我得到了解决方案,谢谢Arek。对于1个分区和1个消费者。 我在spring cloud stream app中分享了producer \ consumer的解决方案。 生产者:
spring:
cloud:
stream:
instanceCount : 1
bindings:
output:
destination: topic-sink
producer:
partitionSelectorClass: com.partition.CustomPartition
partitionCount: 1
消费者:
spring:
cloud:
stream:
instanceIndex: 0 #between 0 and instanceCount - 1
instanceCount: 1
bindings:
input:
destination: topic-sink
group: hdfs-sink
consumer:
partitioned: true
kafka:
binder:
autoAddPartitions: true