【发布时间】:2021-01-09 09:12:10
【问题描述】:
我想知道是否有任何逻辑可以确定哪个消费者在同一消费者组中读取消息。我有一个主题和一个消费者组。但是,我有一个或多个消费者,因为在生产环境中部署了一个消费者,当我在本地运行我的应用程序时,会创建另一个订阅相同主题的消费者(这是一个测试项目,所以它不是真正的生产,我不担心数据丢失)。我注意到有趣的是,本地消费者总是消费任何给定的消息。所以看起来后面创建的消费者优先。
是否可以配置 kafka 以使之前创建的消费者优先读取?
我的设置包括 3 个代理和 1 个消费者组 ID。此外,此 property auto.offset.reset 设置为 earliest(将其更改为 latest 不能解决问题)。我将这个 Go library 用于卡夫卡。这是我的设置代码:
import (
"log"
"github.com/confluentinc/confluent-kafka-go/kafka"
)
func getConfig() *kafka.ConfigMap {
return &kafka.ConfigMap{
"metadata.broker.list": conf.KafkaBrokers,
"security.protocol": "SASL_SSL",
"sasl.mechanisms": "SCRAM-SHA-256",
"sasl.username": conf.KafkaUsername,
"sasl.password": conf.KafkaPassword,
"group.id": conf.KafkaGroupID,
"default.topic.config": kafka.ConfigMap{"auto.offset.reset": "earliest"},
//"debug": "generic,broker,security",
}
}
【问题讨论】:
标签: apache-kafka kafka-consumer-api