Junior — Middle
Jak je implementována skupina spotřebitelů v Apache Kafka?
sobes.tech AI
Odpověď od AI
V Apache Kafka je skupina spotřebitelů implementována jako soubor spotřebitelů, kteří společně čtou data z témat a rozdělují mezi sebou partitiony. Každý spotřebitel ve skupině obdrží unikátní sadu partitionů, což zajišťuje paralelní zpracování zpráv bez duplicit.
Při použití Go (Golang) s knihovnami sarama nebo confluent-kafka-go lze vytvořit skupinu spotřebitelů zadáním stejného group.id. Kafka automaticky rozdělí partitiony mezi členy skupiny a bude sledovat offsety.
Příklad s 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"}
// Implementace rozhraní ConsumerGroupHandler
handler := &MyConsumerGroupHandler{}
for {
err := consumerGroup.Consume(ctx, topics, handler)
if err != nil {
log.Fatal(err)
}
}
Tímto způsobem skupina spotřebitelů umožňuje škálovat zpracování zpráv a zajišťuje vyvážení zátěže mezi instancemi.