Appearance
Установки и настройка Kafka
Kafka - распределённый программный брокер сообщений, который используется для согласования работы бэкенда в режиме кластера.
К сведению
На момент написания статьи последняя версия Kafka 3.3.1.
Информация
Для работы Kafka 3.3.1 необходима Java 8+
Установка Kafka
- Перейти в директорию, где будет находиться Kafka:
shell
cd /opt
- Скачать Kafka:
shell
wget https://dlcdn.apache.org/kafka/3.3.1/kafka_2.13-3.3.1.tgz
- Распаковать архив и перейти в директорию:
shell
tar -xzf kafka_2.13-3.3.1.tgz
- Переименовать директорию:
shell
mv kafka_2.13-3.3.1 kafka
Для запуска Apache Kafka используется ZooKeeper или KRaft.
Ниже описан порядок запуска Kafka с помощью ZooKeeper.
- Написать юниты для 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
- Перечитать файлы systemd:
shell
sudo systemctl daemon-reload
- Установить автозапуск и запустить сервисы
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
Информация
Создавать топики не нужно, программа создаст их сама.