我已经尝试使用shopify / sarama库来使用kafka消息。我同时使用了Consumer
接口和ConsumerGroup
接口。我可以使用ConsumePartition()
中的Consumer
方法从特定分区中使用。但是,当我使用ConsumerGroup
接口时,我似乎没有能力从特定分区进行消费。
我是否可以将某些分区分配给消费者组中的特定消费者?还是我不能干预的事情?
答案 0 :(得分:0)
使用ConsumerGroup
时似乎无法给出要使用的确切分区。但是,我可以从2个策略选项中选择要为消费者分配分区的策略。
BalanceStrategyRange是默认设置,并将分区作为范围分配给使用者组成员。 例如,一个主题T具有六个分区(0..5)和两个成员(M1,M2):
M1: {T: [0, 1, 2]}
M2: {T: [3, 4, 5]}
BalanceStrategyRoundRobin以交替顺序将分区分配给成员。 带有六个分区(0..5)和两个成员(M1,M2)的主题T的示例:
M1: {T: [0, 2, 4]}
M2: {T: [1, 3, 5]}
我可以在创建ConsumerGroup时将其作为配置。
config.Consumer.Group.Rebalance.Strategy = BalanceStrategyRange