Senior
22
Что такое Kafka и как она работает? Чем отличается от обычных message broker-ов?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Apache Kafka — это распределённая платформа потоковой передачи данных, которая работает как высокопроизводительный брокер сообщений. Она предназначена для обработки больших объёмов данных в режиме реального времени с высокой пропускной способностью и низкой задержкой.
Kafka организует данные в топики, которые разбиваются на партиции. Производители (producers) записывают сообщения в партиции, а потребители (consumers) читают их. Каждое сообщение в партиции имеет смещение (offset), что позволяет потребителям читать данные в нужном порядке и повторно при необходимости.
Отличия Kafka от обычных message broker-ов:
- Хранение сообщений: Kafka хранит сообщения на диске и позволяет читать их многократно, в то время как классические брокеры часто удаляют сообщение после доставки.
- Производительность: Kafka оптимизирована для очень высокой пропускной способности и масштабируемости.
- Модель потребления: Kafka использует pull-модель для потребителей, что даёт им контроль над скоростью чтения.
- Гарантии доставки: Kafka поддерживает разные уровни гарантии доставки (at-most-once, at-least-once, exactly-once).
Пример использования Kafka в 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<>("topic", "key", "message"));
producer.close();