Junior — Middle
Kuidas rakendatakse Apache Kafka-s tarbijate grupp?
sobes.tech AI
Vastus AI-lt
In Apache Kafka, a consumer group is implemented as a set of consumers that jointly read data from topics, distributing partitions among themselves. Each consumer in the group receives a unique set of partitions, ensuring parallel processing of messages without duplication.
Using Go (Golang) with the libraries sarama or confluent-kafka-go, you can create a consumer group by specifying the same group.id. Kafka will automatically distribute partitions among group members and track offsets.
Example with sarama:
config := sarama.NewConfig()
config.Version = sarama.V2_1_0_0
consumerGroup, err := sarama.NewConsumerGroup([]string{"localhost:9092"}, "my-group", config)
if err != nil {
panic(err)
}
topics := []string{"my-topic"}
// Implementation of the ConsumerGroupHandler interface
handler := &MyConsumerGroupHandler{}
for {
err := consumerGroup.Consume(ctx, topics, handler)
if err != nil {
log.Fatal(err)
}
}
This way, the consumer group allows scaling message processing and load balancing between instances.