Junior — Middle
Apache Kafka-да тұтынушылар тобы қалай жүзеге асырылады?
sobes.tech AI
AI-дан жауап
Apache Kafka-да тұтынушылар тобы (consumer group) — бұл топтағы тұтынушылардың жиынтығы, олар бірлесе отырып деректерді топиктерден оқиды және партицияларды өзара бөледі. Әрбір тұтынушы топта бірегей партиция жиынтығын алады, бұл хабарламаларды параллель өңдеуге және қайталануды болдырмауға мүмкіндік береді.
Go (Golang) тілін және sarama немесе confluent-kafka-go кітапханаларын пайдалана отырып, тұтынушылар тобы құруға болады, ол үшін бірдей group.id көрсетіледі. Kafka автоматты түрде партицияларды топ қатысушылары арасында бөледі және смещение (offsets) бақылауын жүргізеді.
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 интерфейсін жүзеге асыру
handler := &MyConsumerGroupHandler{}
for {
err := consumerGroup.Consume(ctx, topics, handler)
if err != nil {
log.Fatal(err)
}
}
Осылайша, тұтынушылар тобы хабарламаларды өңдеуді масштабтауға және жүктің тең бөлінуін қамтамасыз етуге мүмкіндік береді.