2つのパーティションを持つ「トピック」があります。特定のカフカコンシューマを特定のパーティションに割り当てる方法
topic-0
topic-1
と私は同じ目的地 "トピック" と同じグループで
input0
input1
2つの入力メッセージチャンネルを持っています。
私が理解しているのは、同じグループなので、各トピックには自動的にパーティションが割り当てられるということです。
特定のメッセージチャネルに特定のパーティションを割り当てることはできますか。
2つのパーティションを持つ「トピック」があります。特定のカフカコンシューマを特定のパーティションに割り当てる方法
topic-0
topic-1
と私は同じ目的地 "トピック" と同じグループで
input0
input1
2つの入力メッセージチャンネルを持っています。
私が理解しているのは、同じグループなので、各トピックには自動的にパーティションが割り当てられるということです。
特定のメッセージチャネルに特定のパーティションを割り当てることはできますか。
コンシューマのauto-rebalance
を無効にして、適切なinstanceCount
とinstanceIndex
のプロパティを指定して、Kafkaコンシューマに特定のパーティションを割り当てることができます。
例えば、あなたの場合には、
--spring.cloud.stream.bindings.input0.consumer.instanceCount=2 --spring.cloud.stream.bindings.input1.consumer.instanceCount=2 --spring.cloud.stream.bindings.input0.consumer.instanceIndex=0 --spring.cloud.stream.bindings.input1.consumer.instanceIndex=1 --spring.cloud.stream.bindings.input0.group=mygroup --spring.cloud.stream.bindings.input1.group=mygroup --spring.cloud.stream.kafka.bindings.input0.consumer.autoRebalanceEnabled=false --spring.cloud.stream.kafka.bindings.input1.consumer.autoRebalanceEnabled=false --spring.cloud.stream.bindings.input0.destination=topic --spring.cloud.stream.bindings.input1.destination=topic
(入力チャンネルを結合する場合)上記の構成はpartition
、instanceCount
とinstanceIndex
値を用いてモジュロに基づいて、各消費者のためのトピックのパーティションを割り当てます。