Что такое Saamsa и зачем это разработчику Apache Kafka: краткий обзор

Saamsa Kafka, Kafka Streams KSQL обучение курсы, потоковая аналитика больших данных кейсы примеры курсы обучение, обучение большим данным примеры кейсы курсы, Apache Kafka примеры альтернативы курсы примеры обучение, администрирование кластера Apache Kafka курсы примеры обучение, event streaming курсы примеры обучение, Школа Больших Данных Учебный центр Коммерсант

Постоянно обновляя наши курсы по Apache Kafka, сегодня рассмотрим еще один полезный инструмент для администраторов, дата-инженеров и разработчиков, который повышает эффективность взаимодействия с этой распределенной платформой потоковой обработки событий. Что такое Saamsa, какие проблемы Kafka она решает и как ее использовать на практике.

5 вопросов разработчика и дата-инженера к Apache Kafka

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

Однако, при всех своих функциональных достоинствах, Kafka имеет ряд недостатков, которые затрудняют практическое использование этой платформы. Например, начинающим разработчикам и администраторам непростая архитектура системы может показаться черным ящиком. С одной стороны, все просто: данные приходят в систему и что-то происходит внутри брокера. Далее разработчику нужно присоединиться потребителя к брокеру для чтения сообщения и передать данные в конечный пункт назначения. Но под капотом этих этапов решается множество промежуточных вопросов, ответы на которые не всегда очевидны:

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

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

Что такое Saamsa и как это работает

Saamsa (не путать с Apache Samza) – это легковесное десктопное и веб-приложение с открытым исходным кодом от сотрудников LinkedIn для работы с Kafka, которое:

  • отображает нагрузку потребителей и продюсеров на отдельного брокера;
  • позволяет разработчику видеть, какой потребитель какие данные потребляет, к каким группам они принадлежат и нужно ли исправить каких-либо потребителей по причине их простоя или устаревания;
  • показывает, как данные хранятся по топикам, и что приводит к дисбалансу сообщений в отдельных разделах, если скорость передачи данных вызывает проблемы с обработкой пакетов;
  • дает возможность разработчику заглянуть внутрь «черного ящика» Kafka и получить закулисную реализацию системы, чтобы оценить, все ли работает так, как ожидалось;
  • визуализирует балансировку нагрузки на брокерах Kafka и позволяет при необходимости настраивать ее.

Таким образом, первая часть Saamsa – это наглядный графический интерфейс, который отображает нагрузку потребителей и продюсеров на отдельного брокера на уровне топика. Второй аспект Saamsa – это не просто визуализация обработки и хранения данных в Kafka. Здесь же обеспечивается однократная репликация с одноразовыми записанными фиксациями (commit) и непрерывная балансировка нагрузки в реальном времени по одному топику на одном и том же брокере. Это обеспечивает целостность данных и эффективные операции чтения/записи для максимальной производительности. Причем все это реализуется одним кликом, делая работу с Kafka максимально удобной для разработчиков и дата-инженеров. Эти функциональные возможности достигаются за счет специальной реализации API Kafka Streams, которая прикрепляется к конкретному топику. Так данные реплицируются в режиме реального времени с помощью независимого потребителя и продюсера в топик, обеспечивая отсутствие помех для других приложений Kafka.

Таким образом, некоторые идеи Saamsa похожи на FlowKat и Monokl — средства мониторинга за кластером Apache Kafka на базе KafkaJS, о которых мы писали здесь. Однако, интерфейс и функциональные возможности Saamsa намного проще, чем FlowKat и Monokl.

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

  • войти в приложение (авторизация для зарегистрированных пользователей и регистрация для новых)
  • добавить новый URL-адрес брокера в поле ввода или использовать ранее заданные;
  • выбрать топик, который необходимо просмотреть.

После этого Saamsa отобразит визуализацию заданного топика на выбранном брокере Kafka. Чтобы настроить балансировку нагрузки Apache Kafka с помощью Saamsa, следует сперва выбрать брокера и топик. После нажатия кнопки Balance Load on Topic, предложенный вариант балансировки нагрузки для исходного топика отобразится с добавлением «_balanced» к исходному имени, например, «topic_balanced».

Узнайте больше про администрирование и эксплуатацию Apache Kafka для разработки распределенных приложений потоковой аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Источники

  1. https://medium.com/@saamsa.grp/how-to-load-balance-in-kafka-811a46ff178
  2. https://github.com/oslabs-beta/saamsa
  3. http://saamsa.io/
Поиск по сайту