Sobes.tech
Junior — Middle

Apache Kafkaда керектүүчүлөр тобу кандай ишке ашырылат?

sobes.tech AI

AIден жооп

Apache Kafkaда, керектөөчүлөр тобу (consumer group) бир топ керектөөчүлөрдөн турган топтом катары ишке ашырылат, алар биргелешип маалыматтарды топиктерден окуп, бөлүмдөрдү бири-бири менен бөлүштүрөт. Топтогу ар бир керектөөчү уникалдуу бөлүмдөр топтомун алат, бул билдирүүлөрдүн параллелдүү иштетилишин жана дублдалбасты камсыздайт.

Go (Golang) колдонуп, sarama же confluent-kafka-go китепканалары менен бирдей group.id көрсөтүп, керектөөчүлөр тобун түзсө болот. Kafka автоматтык түрдө бөлүмдөрдү топтогу мүчөлөр арасында бөлүштүрөт жана оффсеттерди көзөмөлдөйт.

Мисал 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)
    }
}

Бул ыкма керектөөчүлөр тобу билдирүүлөрдү иштетүүнү масштабдоого жана түзмөктөр ортосунда жүктү теңдөөдө жардам берет.