私はバインダーとしてプロデューサーの春の雲ストリームアプリとカフカを構築しました。ここにapplication.ymlがあります:春の雲ストリームkafka
spring:
cloud:
stream:
instanceCount : 1
bindings:
output:
destination: topic-sink
producer:
partitionSelectorClass: com.partition.CustomPartition
partitionCount: 1
...
私は消費者として2つのインスタンス(同じアプリケーションが1つのjvmで動作しています)を持っています。ここでapplication.ymlは次のとおりです。
spring:
cloud:
stream:
bindings:
input:
destination: topic-sink
group: hdfs-sink
consumer:
partitioned: true
...
カフカグループの私の理解では、メッセージが同じグループのものを消費者のために、一度だけ消費されるということです。たとえば、プロデューサアプリケーションがメッセージA、Bを生成し、同じグループに2つのコンシューマアプリケーションがある場合、メッセージAはコンシューマ1によって読み上げられ、メッセージB、Cはコンシューマ2によって読み込まれます。ただし、メッセージ。私の仮定は間違っていますか?
アイデアは、そのグループ内のすべての消費者が特定のトピックからすべてのイベントを消費するということです。しかし、そのトピックのパーティションより多くのコンシューマーが存在する場合、N個のコンシューマー(Nは '#consumers - #partitions')は何もしません。 – Arek