Sobes.tech
Назад к вопросам
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 широко применяется для построения микросервисных архитектур, систем мониторинга и обработки событий в реальном времени.