Sobes.tech
Junior — Middle

Hogyan valósul meg egy fogyasztói csoport az Apache Kafka-ban?

sobes.tech MI

Válasz az MI-től

Az Apache Kafka-ban a fogyasztói csoport (consumer group) egy olyan fogyasztókból álló csoportként valósul meg, akik közösen olvassák az adatokat a témákból, megosztva a partíciókat egymás között. Minden fogyasztó a csoportban egyedi partíciókészletet kap, ami párhuzamos feldolgozást és duplikáció nélküli üzenetkezelést biztosít.

Go (Golang) használatával a sarama vagy confluent-kafka-go könyvtárakkal ugyanazt a group.id-t megadva létrehozhatunk egy fogyasztói csoportot. A Kafka automatikusan elosztja a partíciókat a csoport tagjai között, és nyomon követi az offseteket.

Példa a sarama-val:

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

// ConsumerGroupHandler interfész megvalósítása
handler := &MyConsumerGroupHandler{}

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

Ez a csoport lehetővé teszi az üzenetek feldolgozásának skálázását és a terhelés kiegyenlítését az példányok között.