• Более 80% всех компаний из списка Fortune 100 доверяют и используют Kafka.
    Начнем с формального определения. Apache Kafka - это типичный представитель очереди сообщений вида "подписка-публикация".
    Теперь с более строгого определения. Apache Kafka — это платформа потоковой передачи данных (событий) с открытым исходным кодом. Рассмотрим что такое потоковая передача событий. Если проще, это практика сбора данных в режиме реального времени из всевозможных источников (приложений, баз данных, датчиков) в виде потоков событий со следующими возможностями:
    • Надежное хранение этих потоков событий
    • Манипулирование и обработка событий в режиме реального времени
    • Маршрутизация потоков событий к различным технологиям
    Таким образом, потоковая передача событий обеспечивает непрерывный поток и обработку данных, так что нужная информация оказывается в нужном месте и в нужное время.
  • Для наглядности рассмотрим картинку
  • Приложение 1, 2, ..., 5 посылают сообщения в виде произошедших событий в брокер Kafka (Платформа потоковой передачи событий), kafka их обрабатывает и распределяет по топикам. БД 1, ..., 4 и две копии приложения 1, подписанные на топики, считывают сообщения к себе и обрабатывают так как им надо.
  • Приведу типичный пример использования Kafka. У меня на работе она используется для сбора и передачи данных о работе приложения: логи, данные о нагрузке на приложение, данные об ошибках. Приложение таких данных генерирует невероятно много и очередь сообщений вида "точка-точка" с таким не справится и тут как раз подходит модель потоковой передачи данных, которая идеально справляется с такими задачами. Ну и соответственно Kafka, как самая популярная реализация этой модели.
  • Также Kafka, как и большинство других современных очередей сообщений, имеет функции обеспечения безопасности и отказоустойчивости.
    Отказоустойчивость - это особенность приложения работать без перебоев как в стандартных условиях, так и вне стандартных, например, когда кто-то пролил кофе на ваш сервер:) Измеряется в процентах времени работы от промежутка запуска до выключения. На практике измеряется не просто в процентах, а в кол-ве девяток в дробной части после 99%. Например, у меня на работе надежность достигает 4 девяток, то есть 99,9999% времени сервис будет работать стабильно
  • Не забудем также упомянуть, что Kafka это проект с открытым кодом. То есть вы можете редактировать и изменять его так как вам душе угодно!
Коровкин Артём © 2022
email: artem.korovkin34@gmail.com
Яндекс.Метрика