1

我曾尝试使用 shopify/sarama 库来使用 kafka 消息。我使用了Consumer接口和ConsumerGroup接口。我可以使用ConsumePartition(). Consumer但是当我使用ConsumerGroup接口时,我似乎没有能力从特定分区消费。

有没有办法让我将某些分区分配给消费者组中的特定消费者?还是我无法干预的事情?

4

1 回答 1

4

似乎我无法在使用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
于 2020-01-05T13:50:12.330 回答