Sobes.tech
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)
    }
}

Ин гуна гурӯҳи истеъмолкунандагон имкон медиҳад, ки коркарди паёмҳо васеъ карда шавад ва борбаланӣ байни нусхаҳо таъмин карда шавад.