Что такое Kafka?

Middle
1.1k просмотров
AFK Offer AI

Apache Kafka — распределённая платформа для потоковой обработки данных. Работает как очередь сообщений, но с сохранением на диск и возможностью перечитывания.

Основные концепции: topic (именованный поток сообщений), partition (параллельная часть топика), producer (пишет), consumer (читает), consumer group (параллельное чтение без дублирования), offset (позиция чтения).

В Go используют библиотеки segmentio/kafka-go или confluent-kafka-go:

writer := kafka.NewWriter(kafka.WriterConfig{
    Brokers: []string{"localhost:9092"},
    Topic:   "events",
})
writer.WriteMessages(ctx, kafka.Message{Value: []byte("hello")})

Ключевое отличие от RabbitMQ: Kafka хранит сообщения и позволяет перечитывать. Идеален для event sourcing, логов, аналитики и связи микросервисов.

Следующий вопрос

Protocol Buffers vs JSON — производительность?