Назад к вопросам
Middle
124
questionbank
Что такое группа потребителей (consumer group) в Kafka?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Это набор потребителей, которые совместно обрабатывают сообщения из одной или нескольких тем. Каждый раздел темы может быть назначен только одному потребителю в группе. Это обеспечивает масштабирование и отказоустойчивость: если один потребитель выходит из строя, другие в группе могут взять на себя обработку его разделов. Kafka отслеживает "смещения" (offsets) для каждой группы потребителей отдельно, что позволяет разным группам читать сообщения из одной темы независимо друг от друга.
// Пример создания потребителя с указанием группы
package main
import (
"fmt"
"log"
"github.com/Shopify/sarama" // Одна из популярных библиотек для Kafka
)
func main() {
config := sarama.NewConfig()
config.Consumer.Offsets.AutoCommit.Enable = true
config.Consumer.Group.Session.Timeout = sarama.NewDuration(6 * 1000 * 1000 * 1000) // Таймаут сессии для группы
config.Consumer.Group.Heartbeat.Interval = sarama.NewDuration(3 * 1000 * 1000 * 1000) // Интервал heartbeat
consumer, err := sarama.NewConsumerGroup([]string{"localhost:9092"}, "my-consumer-group", config) // my-consumer-group - имя группы
if err != nil {
log.Fatalf("Failed to create consumer group: %v", err)
}
defer consumer.Close()
// Здесь будет цикл для обработки сообщений из тем
// ...
fmt.Println("Consumer group created")
}