Назад к вопросам
Холодильник.ру
Senior
2
Расскажи про Kafka
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Apache Kafka — это распределённая платформа потоковой передачи данных, предназначенная для обработки больших объёмов сообщений в реальном времени. Она используется для построения систем обмена сообщениями, потоковой аналитики и интеграции данных.
Основные характеристики Kafka:
- Публикация-подписка: продюсеры отправляют сообщения в топики, а консьюмеры читают их.
- Высокая производительность: способна обрабатывать миллионы сообщений в секунду.
- Масштабируемость: легко масштабируется горизонтально.
- Устойчивость: хранит данные на диске с репликацией.
В Go для работы с Kafka часто используют библиотеки, например, segmentio/kafka-go или confluent-kafka-go.
Пример простого продюсера на Go с использованием kafka-go:
package main
import (
"context"
"log"
"github.com/segmentio/kafka-go"
)
func main() {
writer := kafka.NewWriter(kafka.WriterConfig{
Brokers: []string{"localhost:9092"},
Topic: "example-topic",
})
defer writer.Close()
err := writer.WriteMessages(context.Background(),
kafka.Message{
Key: []byte("Key-A"),
Value: []byte("Hello Kafka from Go!"),
},
)
if err != nil {
log.Fatal("failed to write messages:", err)
}
}
Kafka широко применяется для построения микросервисных архитектур, систем мониторинга и обработки событий в реальном времени.