Sobes.tech
Back to questions
Senior
4

Расскажи про Kafka: состав, как работаете, основные компоненты.

Companies where asked
МВидео/эльдорадо

Answer from AI

sobes.tech AI

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

Основные компоненты:

  • Producer — приложение, которое публикует (отправляет) сообщения в Kafka.
  • Broker — сервер Kafka, который хранит и передаёт сообщения.
  • Topic — категория или канал, куда публикуются сообщения.
  • Partition — раздел темы, позволяющий масштабировать и параллелить обработку.
  • Consumer — приложение, которое читает сообщения из Kafka.
  • Consumer Group — группа потребителей, обеспечивающая балансировку нагрузки.
  • Zookeeper (в старых версиях) — сервис для координации и управления кластером.

Как работает Kafka:

  1. Producer отправляет сообщения в определённый topic.
  2. Сообщения записываются в партиции на брокерах, упорядоченно и с сохранением смещения (offset).
  3. Consumers читают сообщения, отслеживая offset, что позволяет им обрабатывать данные последовательно и надёжно.

Kafka обеспечивает высокую производительность, отказоустойчивость и масштабируемость, что делает её популярной для систем логирования, мониторинга, обработки событий и интеграции микросервисов.

Пример простого Producer на Java:

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

KafkaProducer<String, String> producer = new KafkaProducer<>(props);
producer.send(new ProducerRecord<>("my-topic", "key1", "value1"));
producer.close();