消费者集团的Sarama分区消费者

时间:2020-01-03 12:07:43

标签: go apache-kafka sarama

我已经尝试使用shopify / sarama库来使用kafka消息。我同时使用了Consumer接口和ConsumerGroup接口。我可以使用ConsumePartition()中的Consumer方法从特定分区中使用。但是,当我使用ConsumerGroup接口时,我似乎没有能力从特定分区进行消费。

我是否可以将某些分区分配给消费者组中的特定消费者?还是我不能干预的事情?

1 个答案:

答案 0 :(得分:0)

使用ConsumerGroup时似乎无法给出要使用的确切分区。但是,我可以从2个策略选项中选择要为消费者分配分区的策略。

  1. 平衡策略范围

BalanceStrategyRange是默认设置,并将分区作为范围分配给使用者组成员。 例如,一个主题T具有六个分区(0..5)和两个成员(M1,M2):

M1: {T: [0, 1, 2]}
M2: {T: [3, 4, 5]}
  1. 平衡策略轮循

BalanceStrategyRoundRobin以交替顺序将分区分配给成员。 带有六个分区(0..5)和两个成员(M1,M2)的主题T的示例:

M1: {T: [0, 2, 4]}
M2: {T: [1, 3, 5]}

我可以在创建ConsumerGroup时将其作为配置。

config.Consumer.Group.Rebalance.Strategy = BalanceStrategyRange