Skip to content

Установки и настройка Kafka

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

К сведению

На момент написания статьи последняя версия Kafka 3.3.1.

Информация

Для работы Kafka 3.3.1 необходима Java 8+

Установка Kafka

  1. Перейти в директорию, где будет находиться Kafka:
shell
cd /opt
  1. Скачать Kafka:
shell
wget https://dlcdn.apache.org/kafka/3.3.1/kafka_2.13-3.3.1.tgz
  1. Распаковать архив и перейти в директорию:
shell
tar -xzf kafka_2.13-3.3.1.tgz
  1. Переименовать директорию:
shell
 mv kafka_2.13-3.3.1 kafka

Для запуска Apache Kafka используется ZooKeeper или KRaft.

Ниже описан порядок запуска Kafka с помощью ZooKeeper.

  1. Написать юниты для systemd zookeeper.service и kafka.service

ZooKeeper:

ini
[Unit]
Description=Apache Zookeeper server (Kafka)
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh

[Install]
WantedBy=multi-user.target

Kafka:

ini
[Unit]
Description=Apache Kafka server (broker)
Documentation=http://kafka.apache.org/documentation.html
Requires=network.target remote-fs.target
After=network.target remote-fs.target zookeeper.service

[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target
  1. Перечитать файлы systemd:
shell
sudo systemctl daemon-reload
  1. Установить автозапуск и запустить сервисы
shell
sudo systemctl enable zookeeper
sudo systemctl enable kafka
sudo systemctl start zookeeper
sudo systemctl start kafka

Внимание

При стандартных настройках для работы Apache Kafka необходимо открыть порт 9092

Настройка Kafka

Для использования Apache Kafka в ЦРМе необходимо в application.properties установить актуальные параметры, например:

shell
#KAFKA Settings
#Использовать брокер сообщений Kafka
technometer.sds.kafka.enabled=false //[!code --]
technometer.sds.kafka.enabled=true //[!code ++]
#Адрес и порт сервера Kafka
technometer.sds.kafka.bootstrapAddress=URL_KAFKA_SERVER:PORT_KAFKA //[!code --]
technometer.sds.kafka.bootstrapAddress=192.168.1.10:9092 //[!code ++]
#KAFKA префикс топиков
technometer.sds.kafka.topic.prefix=PREFIX_ //[!code --]
technometer.sds.kafka.topic.prefix=db_ //[!code ++]
#Уровень логирования КАФКИ - чтобы отключить - OFF
logging.level.org.apache.kafka=OFF

Информация

Создавать топики не нужно, программа создаст их сама.