Sobes.tech
Назад к вопросам
Junior — Middle
79

Каким образом реализуется группа потребителей в Apache Kafka?

Компании, где спрашивали
Эрливидео

Ответ от нейросети

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

Таким образом, группа потребителей позволяет масштабировать обработку сообщений и обеспечивает балансировку нагрузки между экземплярами.