Новости
Семь Чёрных пятниц на неделе — и все в Serverspace!
Serverspace Black Friday
АМ
Александр Мельников
26 сентября 2019
Обновлено 25 августа 2022

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

Apache Ubuntu

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

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

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

В Serverspace вы можете создать сервер с уже установленным приложением Apache.

В любой организации существует множество приложений и программ, которые генерирует различные сообщения и оповещения. С другой стороны находятся системы мониторинга, которым необходима информация, например, об авторизации пользователей в базе данных 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


Первичный старт Kafka на сервере

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


Создадим файл конфигурации для ZooKeeper:

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


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

[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=kafka
ExecStart=/home/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multy-user.target


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


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

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


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

[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1'
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multy-user.target


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

После создания шаблонов, запустим службу 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.

Оценка:
4 из 5
Аverage rating : 4.7
Оценок: 3
050000 г. Алматы пр. Сейфуллина, д. 502
+7 (777) 555-36-66
ООО «ИТГЛОБАЛКОМ ЛАБС»