登录
首页 >  Golang >  Go问答

Sarama 使用消费者组管理消费分区

来源:stackoverflow

时间:2024-03-15 20:21:31 423浏览 收藏

Sarama库使用消费者组管理消费分区。消费者组允许用户将分区分配给消费者,以实现更精细的消费控制。Sarama提供了两种平衡策略选项:平衡策略范围和平衡策略循环。平衡策略范围将分区作为范围分配给消费者,而平衡策略循环按交替顺序分配分区。通过配置消费者组,用户可以选择所需的平衡策略,从而控制特定消费者对特定分区的消费。

问题内容

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

有没有办法将某些分区分配给消费者组内的特定消费者?或者这是我无法干涉的事情?


解决方案


在使用 consumergroup 时,我似乎无法给出要使用的确切分区。不过,我可以从 2 个策略选项中选择我想要将分区分配给消费者的策略。

  1. 平衡策略范围

balancestrategyrange 是默认值,并将分区作为范围分配给消费者组成员。 一个主题 t 具有六个分区 (0..5) 和两个成员 (m1, m2) 的示例:

m1: {t: [0, 1, 2]}
m2: {t: [3, 4, 5]}
  1. 平衡策略循环

balancestrategyroundrobin 按交替顺序将分区分配给成员。 主题 t 具有六个分区 (0..5) 和两个成员 (m1, m2) 的示例:

m1: {t: [0, 2, 4]}
m2: {t: [1, 3, 5]}

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

config.Consumer.Group.Rebalance.Strategy = BalanceStrategyRange

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Sarama 使用消费者组管理消费分区》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>