Установка Apache Kafka на Ubuntu 18.04

Публикация расскажет, как установить брокер сообщений Apache Kafka на серверную платформу. В качестве серверной ОС используется Ubuntu Server 18.04.

Немного теории

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

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

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

Система является масштабируемой по горизонтали, а также обладает высоким уровнем отказоустойчивости по сравнению с другими аналогичными продуктами.

Брокер используют такие крупные компании как NetFlix, Twitter и др.

Предварительная подготовка

Apache Kafka создан на Java, т.е. для работы ему необходимы соответствующие компоненты на сервере. Предустановим default-jre первоначально.

Заведем пользователя с одноименным именем и паролем, который будет обрабатывать запросы «брокера».

sudo useradd kafka –m

sudo passwd kafka

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

sudo adduser kafka sudo

Перелогинимся и перейдем к инсталляции продукта.

su -l kafka

Скачивание дистрибутива

Сначала создаем директорию в домашнем разделе для сохранения загруженных файлов. 

mkdir ~/Downloads

Загрузим дистрибутив с официального сайта продукта.

curl "http://www-eu.apache.org/dist/kafka/2.3.0/kafka-2.3.0-src.tgz" -o ~/Downloads/kafka.tgz

Важно! На дату 22 августа 2019 года актуальный релиз – 2.3.0.

Далее создаем каталог для распаковки архива, перейдем в него и извлечем информацию.

mkdir ~/kafka

cd ~/kafka

tar -xvzf ~/Downloads/kafka.tgz --strip 1

Теперь перейдем к конфигурированию решения.

Настройка Apache Kafka

Шаблон конфигурации, который поставляется вместе с «брокером», расположен в kafka/config/server.properties.

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

К примеру, добавим опцию удаления тем «брокера». Для этого откроем файл через vi и внесем следующую строку.

delete.topic.enable = true

Первичный старт «Кафка» на сервере

Настроим параметры запуска «брокера» сообщений под требуемые задачи. Для этого воспользуемся сервисом zookeeper. Он отслеживает состояние и конфигурацию Kafka.

1. Создадим файл конфигурации для Zookeeper.

sudo vi /etc/systemd/system/zookeeper.service

Припишем следующую информацию в него.

Файл содержит разные блоки. К примеру, UNIT отвечает работоспособность сети и файловой системы, а INSTALL говорит о том, чтобы служба Zookeeper перезапускалась в автоматическом режиме, если произошел сбой.

2. Теперь создадим шаблон systemd для Apache Kafka.

sudo nano /etc/systemd/system/kafka.service

И также добавим в него строки:

 В данном файле каждая секция также отвечает за разные условия.

3. После создания шаблонов, запустим службу kafka.

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

sudo systemctl enable kafka

Протестируем работоспособность «брокера» сообщений.

Тестирование

Для проверки создадим фразу «Good morning», а потом ликвидируем его. Чтобы сообщение опубликовалось, необходимы producer (тот, кто публикует) и consumer (тот, кто читает).

1. Придумываем тему, в который будет публикация. Дадим ей имя Demo.

~/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic Demo

2. Используя внутреннюю команду kafka-console-producer.sh «брокера», создаем producer. От его имени оформляем публикацию в теме Demo.

echo "Good Morning" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Demo > /dev/null

3. Теперь создадим consumer, который прочитает публикацию в топике. Для этого также используем внутренний скрипт kafka-console-consumer.sh.

~/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic Demo --from-beginning

4. В результате на мониторе появится «Good Morning». Чтобы остановить тестирование, нажимаем сочетание клавиш ctrl+C.

Остались вопросы? Задайте их нашему эксперту и получите квалифицированную помощь