Я создал продюсер весеннее облако поток приложение и kafka в качестве связующего. Вот приложение.yml:весеннее облако поток kafka
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
...
Мое понимание Кафка групп является то, что сообщения будут потребляться только один раз, для тех потребителей, в одной группе. Предположим, что если приложение-производитель создает сообщения A, B и есть два приложения-потребителя в одной группе, сообщение A будет прочитано потребителем 1, а сообщения B, C будут прочитаны потребителем 2. Однако мои потребители потребляют одни и те же Сообщения. Ошибочны ли мои предположения?
Идея с группами потребителей является то, что все потребители в рамках этой группы будут потреблять все события из данной темы. Однако, если для этой темы больше потребителей, чем разделов, то N потребителей (где N является «#consumers - # partitionitions») ничего не делает. – Arek