【问题标题】:Create multiple consumers for same topic in kafka在kafka中为同一主题创建多个消费者
【发布时间】:2018-10-24 09:58:14
【问题描述】:

我是新手,可以在下面的 github 存储库中看到一个带有一个使用者的示例,但是有什么想法可以在 go lang 中为同一主题创建多个使用者吗?

https://github.com/confluentinc/confluent-kafka-go/tree/master/examples

confluent-kafka 中是否有任何消费者工厂(用于生成 N 个消费者)来读取相同的主题(带分区)?

【问题讨论】:

  • 到目前为止你尝试了什么?
  • @Ullaakut 我正在检查是否有任何消费者工厂可用于在融合 kafka 中为同一主题(具有不同分区)创建 N 个消费者?更新了我的问题。
  • 再一次,您尝试过什么?例如,尝试创建一个消费者对象列表并将它们全部分配给一个给定的分区?不过,一般来说,一个应用程序只运行一个消费者。然后你独立扩展你的应用程序
  • @cricket_007,一个应用程序应该运行一个消费者的任何理由。我看到有分区可以提高数据处理时间。我能够获取主题中的分区计数,创建多个消费者并从不同的分区读取数据,并且它适用于小数据。在这个例子中只需要调整代码,github.com/confluentinc/confluent-kafka-go/blob/master/examples/…
  • 为了简单?可扩展的微服务?与其让一台机器成为瓶颈,不如将它分布在多台机器上。否则,已经为一个应用程序分配了给定主题的所有分区。如果你真的需要两个不同的主题,我只看到在 Kafka Streams 中完成的是你会首先加入某个领域的主题

标签: go apache-kafka kafka-consumer-api kafka-producer-api confluent-platform


【解决方案1】:

Confluent github repo 中有一个示例:

https://github.com/confluentinc/confluent-kafka-go/blob/master/examples/consumer_example/consumer_example.go

如果要为同一个主题创建多个消费者,有两种情况:

1.创建具有不同组ID的每个消费者。

c1, err := kafka.NewConsumer(&kafka.ConfigMap{
        "bootstrap.servers":    broker,
        "group.id":             group1,
        "session.timeout.ms":   6000,
        "default.topic.config": kafka.ConfigMap{"auto.offset.reset": "earliest"}})

c2, err := kafka.NewConsumer(&kafka.ConfigMap{
        "bootstrap.servers":    broker,
        "group.id":             group2,
        "session.timeout.ms":   6000,
        "default.topic.config": kafka.ConfigMap{"auto.offset.reset": "earliest"}})
  1. 如果您希望同一主题的多个消费者使用相同的组 ID,它将从单个分区开始消费。即一个主题包含 3 个分区,您创建 3 个具有相同组 id 的消费者,每个消费者将从一个分区消费

【讨论】:

  • 我正在检查是否有任何消费者工厂可用于为同一主题(具有不同分区)创建 N 个消费者?
猜你喜欢
  • 2020-10-12
  • 2020-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-26
  • 2017-01-26
相关资源
最近更新 更多