Apache Kafka – Введение

В больших данных используется огромный объем данных. Что касается данных, у нас есть две основные проблемы. Первая задача состоит в том, как собрать большой объем данных, а вторая задача – проанализировать собранные данные. Чтобы преодолеть эти трудности, вам нужна система обмена сообщениями.

Кафка предназначена для распределенных высокопроизводительных систем. Кафка имеет тенденцию работать очень хорошо как замена более традиционному брокеру сообщений. По сравнению с другими системами обмена сообщениями, Kafka обладает лучшей пропускной способностью, встроенным разделением, репликацией и встроенной отказоустойчивостью, что делает его подходящим для крупномасштабных приложений обработки сообщений.

Что такое система обмена сообщениями?

Система обмена сообщениями отвечает за передачу данных из одного приложения в другое, поэтому приложения могут сосредоточиться на данных, но не беспокоиться о том, как их обмениваться. Распределенный обмен сообщениями основан на концепции надежной очереди сообщений. Сообщения помещаются в очередь асинхронно между клиентскими приложениями и системой обмена сообщениями. Доступны два типа шаблонов обмена сообщениями: один – точка-точка, а другой – система публикации-подписки (pub-sub). Большинство шаблонов сообщений следуют pub-sub .

Система обмена сообщениями точка-точка

В системе точка-точка сообщения сохраняются в очереди. Один или несколько потребителей могут потреблять сообщения в очереди, но конкретное сообщение может потреблять максимум один потребитель. Когда потребитель читает сообщение в очереди, оно исчезает из этой очереди. Типичным примером этой системы является система обработки заказов, в которой каждый заказ обрабатывается одним обработчиком заказов, но одновременно могут работать и несколько обработчиков заказов. Следующая диаграмма изображает структуру.

система обмена сообщениями точка-точка

Система обмена сообщениями «публикация-подписка»

В системе публикации-подписки сообщения сохраняются в теме. В отличие от двухточечной системы, потребители могут подписаться на одну или несколько тем и использовать все сообщения в этой теме. В системе «Публикация-подписка» производители сообщений называются издателями, а потребители сообщений – подписчиками. Примером из реальной жизни является Dish TV, который публикует различные каналы, такие как спортивные состязания, фильмы, музыка и т. Д., И каждый может подписаться на свой собственный набор каналов и получать их, когда доступны их подписанные каналы.

Система обмена сообщениями «публикация-подписка»

Что такое Кафка?

Apache Kafka – это распределенная система обмена сообщениями «публикация-подписка» и надежная очередь, которая может обрабатывать большой объем данных и позволяет передавать сообщения из одной конечной точки в другую. Кафка подходит как для автономного, так и для онлайн-рассылки сообщений. Сообщения Kafka сохраняются на диске и реплицируются в кластере для предотвращения потери данных. Kafka построен поверх сервиса синхронизации ZooKeeper. Он очень хорошо интегрируется с Apache Storm и Spark для анализа потоковых данных в реальном времени.

Льготы

Ниже приведены некоторые преимущества Кафки –

  • Надежность – Кафка распределяется, разбивается, тиражируется и отказоустойчива.
  • Масштабируемость – система обмена сообщениями Kafka легко масштабируется без простоев.
  • Долговечность – Kafka использует распределенный журнал фиксации, который означает, что сообщения сохраняются на диске настолько быстро, насколько это возможно, а значит, и долговечны.
  • Производительность – Кафка обладает высокой пропускной способностью для публикации и подписки сообщений. Он поддерживает стабильную производительность даже при хранении многих ТБ сообщений.

Kafka очень быстр и гарантирует нулевое время простоя и нулевую потерю данных.

Случаи использования

Кафку можно использовать во многих случаях использования. Некоторые из них перечислены ниже –

  • Метрики – Кафка часто используется для оперативного мониторинга данных. Это включает в себя агрегирование статистики из распределенных приложений для получения централизованных потоков оперативных данных.
  • Решение для агрегации журналов – Kafka может использоваться в рамках всей организации для сбора журналов от нескольких служб и предоставления их в стандартном формате нескольким потребителям.
  • Потоковая обработка – популярные платформы, такие как Storm и Spark Streaming, считывают данные из темы, обрабатывают их и записывают обработанные данные в новую тему, где они становятся доступными для пользователей и приложений. Высокая прочность Kafka также очень полезна в контексте потоковой обработки.

Нужно для кафки

Kafka – это унифицированная платформа для обработки всех потоков данных в реальном времени. Kafka поддерживает доставку сообщений с низкой задержкой и дает гарантию отказоустойчивости при наличии сбоев машины. Он способен обрабатывать большое количество разнообразных потребителей. Кафка очень быстрая, выполняет 2 миллиона операций записи в секунду. Кафка сохраняет все данные на диск, что, по сути, означает, что все записи идут в кеш страниц ОС (RAM). Это позволяет очень эффективно передавать данные из кэша страниц в сетевой сокет.

Leave a Reply

Your email address will not be published. Required fields are marked *