Sobes.tech
Junior — Middle

Kako se implementira grupa potrošača u Apache Kafka?

sobes.tech АИ

Одговор од АИ

U Apache Kafka, grupa potrošača (consumer group) implementira se kao skup potrošača koji zajednički čitaju podatke iz tema, deleći particije između sebe. Svaki potrošač u grupi dobija jedinstveni skup particija, što obezbeđuje paralelnu obradu poruka bez duplikata.

Koristeći Go (Golang) sa bibliotekama sarama ili confluent-kafka-go, možete kreirati grupu potrošača navodeći isti group.id. Kafka automatski raspoređuje particije među članovima grupe i prati pomake (offsets).

Primer sa 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"}

// Implementacija interfejsa ConsumerGroupHandler
handler := &MyConsumerGroupHandler{}

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

Na ovaj način, grupa potrošača omogućava skaliranje obrade poruka i obezbeđuje balansiranje opterećenja između instanci.