Junior — Middle
Kaip įgyvendinama vartotojų grupė Apache Kafka?
sobes.tech AI
Atsakymas iš AI
Apache Kafka grupė vartotojų (consumer group) įgyvendinama kaip vartotojų rinkinys, kurie kartu skaito duomenis iš temų, paskirstydami dalis tarp jų. Kiekvienas vartotojas grupėje gauna unikalų dalinių rinkinį, užtikrinantį paralelų pranešimų apdorojimą be dubliavimo.
Naudojant Go (Golang) su bibliotekomis sarama arba confluent-kafka-go, galima sukurti vartotojų grupę nurodant tą patį group.id. Kafka automatiškai paskirstys dalis tarp grupės narių ir stebės poslinkius (offsets).
Pavyzdys su 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"}
// ConsumerGroupHandler sąsajos įgyvendinimas
handler := &MyConsumerGroupHandler{}
for {
err := consumerGroup.Consume(ctx, topics, handler)
if err != nil {
log.Fatal(err)
}
}
Šiuo būdu vartotojų grupė leidžia mastelio keitimą pranešimų apdorojimui ir užtikrina apkrovos paskirstymą tarp instancijų.