Sobes.tech
Junior — Middle

Apache Kafka'da iste'molchilar guruhini qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

Apache Kafka-da iste'molchilar guruhi (consumer group) birgalikda ma'lumotlarni o'qiydigan va partiyalarni o'zaro taqsimlaydigan iste'molchilar to'plami sifatida amalga oshiriladi. Har bir iste'molchi guruhda o'ziga xos partiyalar to'plamini oladi, bu esa xabarlarni parallel tarzda qayta ishlash va takrorlanishni oldini oladi.

Go (Golang) bilan sarama yoki confluent-kafka-go kutubxonalaridan foydalanib, bir xil group.id ko'rsatilgan holda iste'molchilar guruhini yaratish mumkin. Kafka avtomatik ravishda partiyalarni guruh a'zolari o'rtasida taqsimlaydi va offsetlarni kuzatib boradi.

sarama bilan misol:

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 interfeysini amalga oshirish
handler := &MyConsumerGroupHandler{}

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

Shu tarzda, iste'molchilar guruhi xabarlarni qayta ishlashni kengaytirishga va instansiyalar o'rtasida yukni taqsimlashga imkon beradi.