Sobes.tech
Junior — Middle

Ako je implementovaná skupina spotrebiteľov v Apache Kafka?

sobes.tech AI

Odpoveď od AI

V Apache Kafka, skupina spotrebiteľov (consumer group) je implementovaný ako skupina spotrebiteľov, ktorí spoločne čítajú údaje z tém a rozdeľujú medzi sebou partície. Každý spotrebiteľ v skupine dostáva jedinečný súbor partícií, čo zabezpečuje paralelné spracovanie správ bez duplikácie.

Pri použití Go (Golang) s knižnicami sarama alebo confluent-kafka-go môžete vytvoriť skupinu spotrebiteľov zadaním rovnakého group.id. Kafka automaticky rozdelí partície medzi členov skupiny a bude sledovať offsety.

Príklad s 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"}

// Implementácia rozhrania ConsumerGroupHandler
handler := &MyConsumerGroupHandler{}

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

Týmto spôsobom skupina spotrebiteľov umožňuje škálovanie spracovania správ a zabezpečuje vyváženie záťaže medzi inštanciami.