Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

Apache Kafka: устройство, плюсы, минусы и грани...

Apache Kafka: устройство, плюсы, минусы и границы применимости

Бындюсофт

May 12, 2021
Tweet

More Decks by Бындюсофт

Other Decks in Technology

Transcript

  1. Apache Kafka ❏ Kafka vs RabbitMQ ❏ Kafka Ecosystem ❏

    Docker ❏ Conduktor ❏ kafkacat ❏ Node.js https://byndyusoft.com
  2. Kafka vs RabbitMQ ❏ 100k/s ❏ Читать с начала ❏

    Consumers scaling: по партициям ❏ Brokers scaling: горизонтально ❏ Сообщения последовательны ❏ Сжатие нескольких сообщений ❏ Удаление дублей ❏ Читать/Писать бачами ❏ Pull модель ❏ 20+k/s ❏ Нельзя читать с начала ❏ Consumers scaling: умный брокер ❏ Brokers scaling: вертикально ❏ Приоритет сообщений ❏ Роутинг сообщений ❏ Бачей нет, но есть prefetch ❏ Push модель ❏ WEB-морда из коробки
  3. Kafka vs RabbitMQ ❏ Когда нужна помесь БД и очереди

    ❏ Анализ данных: отслеживание, прием данных, ведение журнала, безопасность ❏ Обработка в реальном времени: много producers, мало consumers ❏ EventSourcing: изменения в системе как последовательность сообщений ❏ Когда просто нужно очередь ❏ Long-running tasks ❏ Посредник в микросервисных архитектурах: он служит средством связи между приложениями ❏ Поддержка разных протоколов (AMQP 0-9-1, AMQP 1.0, STOMP, MQTT) ❏ Продвинутый роутинг сообщений
  4. Kafka и RabbitMQ ❏ Не враги, а друзья ❏ Выбор

    зависит от проекта ❏ Никто не мешает использовать оба брокера
  5. Kafka Ecosystem ❏ Kafka Streams ❏ Это Java API, которое

    позволяет перекладывать данные из топика в топик, по пути совершая различные преобразования этих данных ❏ ksqlDB ❏ Это надстройка над Kafka Streams, которая позволяет вместо написания Java кода использовать SQL- подобный язык, который автоматически генерирует Kafka Streams приложения ❏ Kafka REST Proxy ❏ Для тех кто хочет использовать HTTP
  6. Node.js ❏ https://www.npmjs.com/package/kafkajs ❏ Не надо компилировать, API проще, меньше

    возможностей ❏ https://www.npmjs.com/package/node-rdkafka ❏ Надо компилировать, API сложнее, больше возможностей
  7. Ссылки ❏ https://www.cloudkarafka.com/blog/part1-kafka-for-be ginners-what-is-apache-kafka.html ❏ https://www.cloudamqp.com/blog/when-to-use-rabbit mq-or-apache-kafka.html ❏ https://www.conduktor.io ❏

    https://rmoff.net/2019/09/29/copying-data-between-ka fka-clusters-with-kafkacat ❏ https://www.npmjs.com/package/kafkajs ❏ https://www.npmjs.com/package/node-rdkafka