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:
- Producer отправляет сообщения в определённый topic.
- Сообщения записываются в партиции на брокерах, упорядоченно и с сохранением смещения (offset).
- 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();