Sobes.tech
Middle

Wat is een consumer group in Kafka?

sobes.tech AI

Antwoord van 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")
}