创建ConsumerGroup消费者组
消费者组允许多个消费者并行处理相同主题的消息,每个消费者负责处理不同的分区。创建时需要先实例化Sarama配置对象。
根据连接到的Kafka集群创建Sarama配置对象,需要注意Kafka集群版本以及消费者组的偏移量。
import (
"github.com/IBM/sarama"
)
func NewSaramaConfig(version sarama.KafkaVersion, oldest bool) *sarama.Config {
/**
* Construct a new Sarama configuration. 构造Sarama配置
*/
config := sarama.NewConfig()
config.Version = version
if oldest {
config.Consumer.Offsets.Initial = sarama.OffsetOldest
}
return config
}
func main() {
// 从最旧的便宜开始消费
oldest := true
version := sarama.V3_6_0_0
// 指定kafka集群版本配置,如"0.10.2.1"
// version, err := sarama.ParseKafkaVersion("0.10.2.1")
if err != nil {
log.Panicf("Error parsing Kafka version: %v", err)
}
config := NewSaramaConfig(version, oldest)
// 指定集群brokers列表
brokers := "host1:9092,host2:9092,host3:9092"
// 指定group
group := "sarama_consumergroup"
client, err := sarama.NewConsumerGroup