我正在使用Kafka 10.0和https://github.com/Shopify/sarama。 我试图获取消费者处理的最新消息的偏移量。
为此,我找到了需要组名的方法NewOffsetManagerFromClient(group string, client Client)。
如何获取消费者群组名称?
offsets := make(map[int32]int64)
config := sarama.NewConfig()
config.Consumer.Offsets.CommitInterval = 200 * time.Millisecond
config.Version = sarama.V0_10_0_0
// config.Consumer.Offsets.Initial = sarama.OffsetNewest
cli, _ := sarama.NewClient(kafkaHost, config)
defer cli.Close()
offsetManager, _ := sarama.NewOffsetManagerFromClient(group, cli)
for _, partition := range partitions {
partitionOffsetManager, _ := offsetManager.ManagePartition(topic, partition)
offset, _ := partitionOffsetManager.NextOffset()
offsets[partition] = offset
}
return offsets
我用
创建了一个消费者consumer := sarama.NewConsumer(connections, config)
但我不知道如何创建一个消费者群组并获取其组名。
答案 0 :(得分:0)
您正在尝试创建自己的偏移管理器以查找当前偏移量:
offsetManager, _ := sarama.NewOffsetManagerFromClient(group, cli)
同样,消费主题消息的消费者必须使用相同的偏移管理器,并且他们会使用特定的组ID。使用该组ID。
答案 1 :(得分:0)
我认为您可以使用任何字符串作为groupId。请查看sarama GoDoc
中的示例// Start a new consumer group
group, err := NewConsumerGroupFromClient("my-group", client)
if err != nil {
panic(err)
}
defer func() { _ = group.Close() }()
也许您可以给它任何字符串。并且您应该确保其他使用者可以使用相同的groupId来加入该组。