Middle
Qu'est-ce qu'un groupe de consommateurs dans Kafka?
sobes.tech IA
Réponse de l'IA
Это набор потребителей, которые совместно обрабатывают сообщения из одной или нескольких тем. Каждый раздел темы может быть назначен только одному потребителю в группе. Это обеспечивает масштабирование и отказоустойчивость: если один потребитель выходит из строя, другие в группе могут взять на себя обработку его разделов. 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")
}