Sobes.tech
Senior
38

Ce este Kafka și cum funcționează? Cu ce se deosebește de brokerii de mesaje obișnuiți?

Companiile au fost întrebate
СБЕРСБЕР

Răspuns de la AI

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();