Sobes.tech
Junior — Middle

Hoe wordt een consumentengroep geïmplementeerd in Apache Kafka?

sobes.tech AI

Antwoord van AI

In Apache Kafka wordt een consumentengroep geïmplementeerd als een verzameling consumenten die gezamenlijk gegevens uit topics lezen en de partitions onderling verdelen. Elke consument in de groep ontvangt een unieke set partitions, wat zorgt voor parallelle verwerking van berichten zonder duplicatie.

Bij gebruik van Go (Golang) met de bibliotheken sarama of confluent-kafka-go kun je een consumentengroep maken door dezelfde group.id op te geven. Kafka verdeelt automatisch de partitions onder de groepsleden en houdt de offsets bij.

Voorbeeld met 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"}

// Implementatie van de ConsumerGroupHandler-interface
handler := &MyConsumerGroupHandler{}

for {
    err := consumerGroup.Consume(ctx, topics, handler)
    if err != nil {
        log.Fatal(err)
    }
}

Op deze manier maakt de consumentengroep het mogelijk om de verwerking van berichten te schalen en zorgt het voor load balancing tussen de instanties.