我已经构建了一个生产者 spring 云流应用程序和 kafka 作为 binder。这是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 并且同一组中有两个消费者应用程序,消息 A 将由消费者 1 读取,消息 B、C 将由消费者 2 读取。但是,我的消费者正在消费相同消息。我的假设是错误的吗?