2017-07-27 55 views
0

我有一個包含2個分區的「主題」。如何將特定卡夫卡用戶分配到特定分區

topic-0 
topic-1 

我有2個輸入消息通道

input0 
input1 

與同一目的地 「主題」 和相同的基團。

我的理解是,由於它是同一個組,每個主題都會自動分配一個分區。

是否可以將特定分區分配給特定的消息通道?

回答

2

您可以將特定分區分配給卡夫卡消費者,同時禁用消費者的auto-rebalance以及相應的instanceCountinstanceIndex屬性。

例如,在你的情況下,

--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

上述配置將分配主題的分區爲每個消費者(綁定輸入信道時)的基礎上使用partitioninstanceCountinstanceIndex值模。