Sobes.tech
Junior — Middle

Cum se implementează un grup de consumatori în Apache Kafka?

sobes.tech AI

Răspuns de la AI

În Apache Kafka, un grup de consumatori este implementat ca un set de consumatori care citesc împreună date din topicuri, distribuind partițiile între ei. Fiecare consumator din grup primește un set unic de partiții, asigurând procesarea paralelă a mesajelor fără duplicare.

Folosind Go (Golang) cu biblioteca sarama sau confluent-kafka-go, se poate crea un grup de consumatori specificând același group.id. Kafka va distribui automat partițiile între membrii grupului și va urmări offset-urile.

Exemplu cu 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"}

// Implementarea interfeței ConsumerGroupHandler
handler := &MyConsumerGroupHandler{}

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

Astfel, grupul de consumatori permite scalarea procesării mesajelor și asigură echilibrarea încărcării între instanțe.