Junior — Middle
Kako se implementira grupa potrošača u Apache Kafka?
sobes.tech АИ
Одговор од АИ
U Apache Kafka, grupa potrošača (consumer group) implementira se kao skup potrošača koji zajednički čitaju podatke iz tema, deleći particije između sebe. Svaki potrošač u grupi dobija jedinstveni skup particija, što obezbeđuje paralelnu obradu poruka bez duplikata.
Koristeći Go (Golang) sa bibliotekama sarama ili confluent-kafka-go, možete kreirati grupu potrošača navodeći isti group.id. Kafka automatski raspoređuje particije među članovima grupe i prati pomake (offsets).
Primer sa 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"}
// Implementacija interfejsa ConsumerGroupHandler
handler := &MyConsumerGroupHandler{}
for {
err := consumerGroup.Consume(ctx, topics, handler)
if err != nil {
log.Fatal(err)
}
}
Na ovaj način, grupa potrošača omogućava skaliranje obrade poruka i obezbeđuje balansiranje opterećenja između instanci.