Back to questions
Senior
8
В чём разница между использованием Consumer Group и без неё в Kafka?
Companies where asked
Магнит Тех
Answer from AI
sobes.tech AI
В Apache Kafka Consumer Group — это группа потребителей, которые совместно читают данные из топика, распределяя между собой партиции.
Без Consumer Group:
- Каждый потребитель читает все сообщения из топика независимо.
- Если несколько потребителей читают из одного топика, каждый получит все сообщения (дублирование).
С Consumer Group:
- Потребители в группе делят партиции топика между собой, обеспечивая параллельную обработку без дублирования.
- Если в группе N потребителей и M партиций, то каждая партиция назначается одному потребителю.
- Позволяет масштабировать обработку и обеспечивает балансировку нагрузки.
Пример на Go с использованием Consumer Group:
import (
"context"
"github.com/segmentio/kafka-go"
)
func consumeGroup() {
r := kafka.NewReader(kafka.ReaderConfig{
Brokers: []string{"localhost:9092"},
GroupID: "my-group",
Topic: "my-topic",
})
for {
m, err := r.ReadMessage(context.Background())
if err != nil {
break
}
fmt.Printf("message at offset %d: %s = %s\n", m.Offset, string(m.Key), string(m.Value))
}
r.Close()
}
Таким образом, Consumer Group обеспечивает координацию и масштабируемость потребления сообщений в Kafka.