Статьи

Разработка Java-приложения с Kafka

Сегодняшние пользователи приложений требуют самого лучшего пользовательского опыта. Они привыкли получать доступ к своим приложениям со всех своих устройств (компьютеров, мобильных телефонов, планшетов и т. Д.). Поскольку платформы продолжают переходить на программное обеспечение как услугу (SaaS), разработчики постоянно сотрудничают с мощными инструментами, которые позволяют обрабатывать тысячи запросов каждую секунду. Вот тут-то и появился Apache Kafka, надежный инструмент, который известен своей способностью работать в очень интенсивной среде. 

В этой статье мы познакомим вас с основами Apache Kafka и перейдем к созданию безопасного, масштабируемого приложения для обмена сообщениями с использованием Java и Kafka. 

Предварительные условия:  Java 8+, подключение к интернету и  бесплатная учетная запись разработчика Okta .

Краткий обзор Apache Kafka

Apache Kafka — это распределенная потоковая платформа, которая использует шаблон сообщений публикации / подписки для взаимодействия с приложениями; это разработано, чтобы создать длительные сообщения.

Давайте разберем эти понятия более подробно.

Платформа распределенной потоковой передачи

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

Одного брокера недостаточно, чтобы Kafka мог обрабатывать сообщения с высокой пропускной способностью. Эта цель достигается благодаря совместной работе многих брокеров, общению и координации друг с другом.

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


Вам также может понравиться:
Учебное пособие по Kafka для всех, не имеет значения ваш этап в развитии .

Система обмена сообщениями публикации / подписки с надежными сообщениями

Публикация / подписка — это распространенный шаблон в распределенных системах. Изображение ниже иллюстрирует базовую структуру этого шаблона в Кафке:

Производители и потребители кафки

Изображение включает в себя два компонента, не упомянутых до сих пор: производители и потребители.

Producer — это приложение, которое отправляет сообщения в кластер. В этом примере Producer 1, 2 и 3 отправляют сообщения. Затем кластер выбирает, какой брокер должен их хранить, и отправляет его выбранным.

С другой стороны, у вас есть потребители. Потребитель — это приложение, которое подключается к кластеру и получает сообщения от производителей. Любое приложение, которое заинтересовано в использовании сообщений, отправляемых производителями, должно подключаться к потребителю Kafka.

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

Кафка Темы

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

Теперь, когда вы понимаете основную архитектуру Kafka, давайте загрузим и установим ее.

Установите и запустите Kafka

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

Внутри каталога Kafka перейдите в  bin папку. Здесь вы найдете много скриптов bash, которые будут полезны для запуска приложения Kafka. Если вы используете Windows, у вас также есть те же скрипты внутри  windows папки. В этом руководстве используются команды Linux, но вам просто нужно использовать эквивалентную версию Windows, если вы используете ОС Microsoft.

Запустите Zookeeper для управления вашим кластером Kafka

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

Кафка использует  Zookeeper  для отслеживания этих деталей. Не беспокойтесь о его загрузке. Kafka уже поставляется вместе с Zookeeper, что позволяет вам очень быстро встать на ноги.

Давайте запустим экземпляр Zookeeper! Внутри  bin папки в вашем каталоге Kafka выполните следующую команду:


Оболочка