我有一个包含2个分区的“主题”。如何将特定卡夫卡用户分配到特定分区
topic-0
topic-1
我有2个输入消息通道
input0
input1
与同一目的地 “主题” 和相同的基团。
我的理解是,由于它是同一个组,每个主题都会自动分配一个分区。
是否可以将特定分区分配给特定的消息通道?
我有一个包含2个分区的“主题”。如何将特定卡夫卡用户分配到特定分区
topic-0
topic-1
我有2个输入消息通道
input0
input1
与同一目的地 “主题” 和相同的基团。
我的理解是,由于它是同一个组,每个主题都会自动分配一个分区。
是否可以将特定分区分配给特定的消息通道?
您可以将特定分区分配给卡夫卡消费者,同时禁用消费者的auto-rebalance
以及相应的instanceCount
和instanceIndex
属性。
例如,在你的情况下,
--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
值模。