Введение
Для работы Comindware Platform требуется сервер Apache Kafka. См. системные требования.
Здесь представлены инструкции по установке Kafka в простейшей базовой конфигурации с помощью дистрибутива Comindware Platform для ОС Linux.
Инструкции по установке Kafka в иных конфигурациях представлены на официальном сайте Apache Kafka.
С помощью дистрибутива Comindware Platform можно развернуть сервер Kafka вместе с экземпляром ПО или на отдельном сервере. Для этого укажите ключ -k при запуске скрипта prerequisites_install.sh. См. «Установка, запуск, инициализация и остановка ПО Comindware Platform».
Здесь представлены требования к техническому обеспечению и инструкции по развёртыванию сервера Kafka в ОС Linux, а также приведён пример типового файла конфигурации. Инструкции представлены для версии Kafka 3.2.0, для других версий содержимое файлов конфигурации и порядок установки могут быть иными.
Требования к серверу
Сервер Kafka создает значительную нагрузку на вычислительные ресурсы компьютера, поэтому рекомендуется:
- использовать отдельный SSD-диск для хранения журналов и данных сервера Kafka;
- использовать высокопроизводительный компьютер с достаточным объемом ОЗУ и количеством ядер ЦП.
Установка Kafka
-
Перейдите в режим суперпользователя:
sudo -sили
su - -
Скачайте и распакуйте дистрибутив с вспомогательным ПО Comindware Platform, полученный по ссылке от компании Comindware (
X.X,<versionNumber>— номер версии ПО,<osname>— название операционной системы):tar -xf X.X-release-ru-<versionNumber>.prerequisites.<osname>.tar.gzСовет
После распаковки архив можно удалить для экономии места:
rm -f X.X-release-ru-<versionNumber>.prerequisites.<osname>.tar.gz -
Перейдите в директорию со скриптами для развёртывания вспомогательного ПО:
cd <prerequisitesDistPath>/CMW_<osname>/scriptsЗдесь:
<prerequisitesDistPath>/CMW_<osname>/— путь к распакованному дистрибутиву со вспомогательным ПО. -
Установите Kafka из дистрибутива с помощью ключа
-k:sh prerequisites_install.sh -k -
Отредактируйте файл
/usr/share/kafka/config/kraft/server.propertiesпо следующему образцу:# Роли, в которых должен выступать сервер Kafkaprocess.roles=broker,controller# Идентификатор узлаnode.id=1# IP-адрес сервера Kafkacontroller.quorum.voters=1@<KafkaIP>:9093# IP-адрес сервера Kafkalisteners=PLAINTEXT://<KafkaIP>:9092,CONTROLLER://<KafkaIP>:9093# Имя слушателя для связи между брокерамиinter.broker.listener.name=PLAINTEXT# Имена слушателей контроллераcontroller.listener.names=CONTROLLER# Карта протоколов безопасности для слушателейlistener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL# Количество сетевых потоковnum.network.threads=3# Количество потоков ввода-выводаnum.io.threads=8# Размер буфера отправки сокетаsocket.send.buffer.bytes=102400# Размер буфера приёма сокетаsocket.receive.buffer.bytes=102400# Максимальный размер запросаsocket.request.max.bytes=104857600# Путь к файлам журналовlog.dirs=/var/log/comindware/.kafka# Количество разделов (партиций) по умолчаниюnum.partitions=4# Количество потоков восстановления на каталог данныхnum.recovery.threads.per.data.dir=1# Фактор репликации темы смещенийoffsets.topic.replication.factor=1# Фактор репликации журнала состояния транзакцийtransaction.state.log.replication.factor=1# Минимальное количество ISR для журнала состояния транзакцийtransaction.state.log.min.isr=1# Время хранения журналов (в часах)log.retention.hours=168# Размер сегмента журналаlog.segment.bytes=1073741824# Интервал проверки хранения журналов (в миллисекундах)log.retention.check.interval.ms=300000# Максимальный размер запросаmax.request.size=104857600# Максимальный размер сообщенияmax.message.bytes=104857600# Максимальный размер сообщенияmessage.max.bytes=104857600# Максимальный размер сообщения для выборкиfetch.message.max.bytes=104857600# Максимальный размер сообщения для выборки репликиreplica.fetch.max.bytes=104857600 -
После установки удостоверьтесь, что служба Kafka запущена и имеет статус
Active (running):systemctl status kafka -
Если сервер Kafka не работает, запустите его:
systemctl start kafka
Подключение экземпляра Comindware Platform к Kafka
-
Перейдите в режим суперпользователя:
sudo -sили
su - -
Задайте параметры подключения к Kafka в файле
/usr/share/comindware/configs/instance/<instanceName>.yml(<instanceName>— имя экземпляра ПО Comindware Platform):# Адрес и порт брокера сообщений (Kafka)mq.server: <kafkaBrokerIP>:<kafkaBrokerPort># Префикс имени очередей сообщенийmq.name: <instanceName># Идентификатор группы очереди сообщенийmq.group: <instanceName># Идентификатор узла очереди сообщенийmq.node: <instanceName>Внимание!
Для корректной работы экземпляра ПО необходимо соблюсти следующие условия:
- IP-адрес и порт {{ apacheKafkaVariants }} должны быть обязательно прописаны цифрами в формате
XXX.XXX.XXX.XXX:XXXXX. То есть недопустимо указывать имя хоста вместо IP-адреса и опускать номер порта. -
Установите соответствующие вашей конфигурации значения параметров
mq.server(адрес и порт брокера сообщений),mq.group. Они должны совпадать во всех файлах конфигурации:/usr/share/comindware/configs/instance/<instanceName>.yml/var/www/<instanceName>/apigateway.yml/var/www/<instanceName>/adapterhost.yml
- IP-адрес и порт {{ apacheKafkaVariants }} должны быть обязательно прописаны цифрами в формате
-
Задайте параметры подключения к Kafka в файле
/var/www/<instanceName>apigateway.yml:# Адрес и порт брокера сообщений (Kafka)mq.server: <kafkaBrokerIp>:<kafkaBrokerPort># Префикс имени очередей сообщенийmq.name: <instanceName># Идентификатор группы очереди сообщенийmq.group: <instanceName># Идентификатор узла очереди сообщенийmq.node: <instanceName> -
Задайте параметры подключения к Kafka в файле
/var/www/<instanceName>/adapterhost.yml:# Адрес и порт брокера сообщений (Kafka)mq.server: <kafkaBrokerIp>:<kafkaBrokerPort># Префикс имени очередей сообщенийmq.name: <instanceName># Идентификатор группы очереди сообщенийmq.group: <instanceName># Идентификатор узла очереди сообщенийmq.node: <instanceName> -
Перезапустите экземпляр ПО:
systemctl restart comindware<instanceName>systemctl restart apigateway<instanceName>systemctl restart adapterhost<instanceName> -
Проверьте соединение с Kafka в браузере по ссылке (
<instanceAddress>— URL экземпляра ПО):<instanceAddress>/async
Дополнительные рекомендации
Настройка безопасности
Для повышения безопасности рекомендуется настроить SSL/TLS для шифрования данных и аутентификацию с использованием SASL. Подробные инструкции см. в официальной документации Apache Kafka (на английском языке): https://kafka.apache.org/documentation/#security.
Мониторинг и управление
Для мониторинга и управления сервером Kafka рекомендуется использовать инструменты, такие как Prometheus и Grafana. Подробные инструкции по настройке мониторинга см. в официальной документации Apache Kafka (на английском языке): https://kafka.apache.org/documentation/#monitoring.