Добро пожаловать в мир Apache Kafka

Итак Я решил начать с Apache Kafka Поехали

В современную эпоху больших-данных, самая первая задача состоит в том, чтобы собрать данные всетаки это огромный
объем данных, а вторая задача состоит в том, чтобы проанализировать его. Этот анализ обычно включает в себя следующие типы данных и многое другое:

  • Данные о поведении пользователя
  • Трассировка производительности приложений
  • Данные о деятельности в виде логов
  • Сообщения о событиях

Одно из основных действий для этого представляет собой механизм для подключения различных приложений, с помощью сообщений (messages), которые маршрутизируются между собой, с помощью брокера сообщений, например таких как Apache Kafka.

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

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

Apache Kafka это система обмена сообщениями публикации-подписки с открытым исходным кодом разработан со следующими характеристиками:

  • Стойкие сообщения (Persistent messaging): Чтобы получить реальную отдачу от больших объемов данных, любой вид потери информации должен быть исключен. Apache Кафка разработан с O (1) дисковой структурой, которое обеспечивает стабильную по времени производительность  даже с очень большими объемами хранимых сообщений, порядка терабайт. С Kafka, сообщения, сохраняются на диске, а также реплицируются внутри кластера, чтобы предотвратить потерю данных.
  • Высокая пропускная способность: Kafka способен обрабатывать сотни мегабайт чтения и записи в секунду от большого количества клиентов. При наличии соответсвующего железа.
  • Маштабируемость: Apache Kafka с его кластерной-ориентированной структурой явно поддерживает разделение сообщений с серверами Кафка и распределяя потребление на протяжении кластера потребительских машин. Кафка кластер может расти упруго и прозрачно, без каких-либо простоев.
  • Поддержка нескольких клиентов: Система Apache Kafka поддерживает легкую интеграцию клиентов из различных платформ, таких как Java, .NET, PHP, Ruby и Python.
  • Работа реальном времени: Сообщения, полученные от поставщиков должны быть сразу видны на потребительских потоках; эта функция имеет решающее значение для систем на основе событий, таких как Complex Event Processing (CEP) систем.

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

На следующей диаграмме показан типичный сценарий агрегации и анализа  больших данных  поддерживаемой системой обмена сообщениями Apache Kafka:

kafladiagram

Со стороны производства, существуют различные виды поставщиков информации, такие как:

  • веб-приложения Frontend генерирующие журналы (logs) приложений
  • прокси-серверы генерирующие журналы(logs) веб-аналитики
  • Производитель адаптеров генерирующие журналы(logs) преобразования
  • Сервисы генерирующие журналы(logs) трассировки вызова
  • И прочее…

Что касается потребления, существуют различные виды потребителей, например, следующий вид:

Оффлайн потребителей, потребляющих сообщения и сохраняющие их в Hadoop или традиционные хранилища данных для автономного анализа.

Потребителей в режиме почти реального времени, получающие сообщения и сохраняющие их в какой либо NoSQL хранилище данных, такие как HBase или Cassandra, для аналитики в режиме близзкому к реальному времени

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

Продолжение следует….

One thought on “Добро пожаловать в мир Apache Kafka

Добавить комментарий