go - 在kafka中为同一主题创建多个消费者

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

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

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

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

最佳答案

Confluent github repo 中有一个示例:

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

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

1.用不同的group id创建每个consumer。

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 的消费者,每个消费者将从一个分区中消费

关于go - 在kafka中为同一主题创建多个消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52485463/

相关文章:

debugging - LiteIDE 调试消息没有指定可执行文件使用目标 exec

java - 从java程序远程执行kafka sh脚本

java - 是否可以对 GlobalKTable 进行 ReKey?

docker - 生产者/消费者的Java代码无法在Docker安装程序中连接kafka

java kafka 通过唯一键获取分区中的消息偏移量

performance - Spring +卡夫卡: Transactions slow

go - 如何检查从 golang 中的 tabwriter.Writer 返回的响应

go - 在 Iris Framework 的 POST 方法中重定向

json - 如何将JSON字符串转换为结构

java - Apache Flink TaskExecutor 关闭