Sobes.tech
Junior — Middle

Kaip įgyvendinama vartotojų grupė Apache Kafka?

sobes.tech AI

Atsakymas iš AI

Apache Kafka grupė vartotojų (consumer group) įgyvendinama kaip vartotojų rinkinys, kurie kartu skaito duomenis iš temų, paskirstydami dalis tarp jų. Kiekvienas vartotojas grupėje gauna unikalų dalinių rinkinį, užtikrinantį paralelų pranešimų apdorojimą be dubliavimo.

Naudojant Go (Golang) su bibliotekomis sarama arba confluent-kafka-go, galima sukurti vartotojų grupę nurodant tą patį group.id. Kafka automatiškai paskirstys dalis tarp grupės narių ir stebės poslinkius (offsets).

Pavyzdys su 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 sąsajos įgyvendinimas
handler := &MyConsumerGroupHandler{}

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

Šiuo būdu vartotojų grupė leidžia mastelio keitimą pranešimų apdorojimui ir užtikrina apkrovos paskirstymą tarp instancijų.