You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Настройка kafka

Устанавливаем кафку на сервера, например в директорию /opt/kafka

https://kifarunix.com/install-apache-kafka-on-debian/


Настраиваем конфигурационные файлы на каждом сервере. В примере их три:

  • 172.16.135.10
  • 10.241.200.123
  • 10.241.200.124

В вашем случае их может быть два.

Пример конфигурационного файл config/kraft/server.properties для сервера 172.16.135.10

process.roles=broker,controller

node.id=1

controller.quorum.voters=1@172.16.135.10:9093,2@10.241.200.123:9093,3@10.241.200.124:9093

listeners=PLAINTEXT://172.16.135.10:9092,CONTROLLER://172.16.135.10:9093

inter.broker.listener.name=PLAINTEXT

advertised.listeners=PLAINTEXT://172.16.135.10:9092

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=/opt/kafka/kraft-combined-logs

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=3 # число серверов
transaction.state.log.replication.factor=3 # число серверов

transaction.state.log.min.isr=1


В консоли на каждом сервере инициализировать кафку
Сначала генерим ключ, например RiS_KRIffedSfMurdVxTDKw
Можно командой bin/kafka-storage.sh random-uuid
потом в консоли на каждом сервере выполняем команду
./bin/kafka-storage.sh format -t RiS_KRIffedSfMurdVxTDKw -c config/kraft/server.properties

ключ RiS_KRIffedSfMurdVxTDKw должен быть один и тот же для всех нод

Запуск сервиса

Пример файла сервиса kafka.service

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

[Service]
Type=simple
User=wnam
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
TimeoutSec=30
Restart=always
RestartSec=20s

[Install]
WantedBy=multi-user.target


В конфигурационном файле /home/wnam/application.yaml :


netams:
wnam:
cluster:
# optional, префикс для id сервера
prefix: wnam-cluster-
# optional, default false. Использовать kafka
kafka_enabled: true
# optional default false
main: true
# optional, default 1 количество реплик (серверов) в кластере kafka
replicas: 3
# optional, default true. Пытаться выбрать лидера в kafka при падении брокеров kafka
unclean_election: true
# optional, default empty.Если master, то все задачи выполняются на этом сервере,
role: master
# optional, default 'true'. Использовать локальный кэш. Может быть true или false, отключать кэш следует только в конфигурации когда нет кафки и больше одного сервера wnam
useCache: true

spring:
# применяется если kafka_enabled = true
kafka:
bootstrap-servers: 172.16.135.10:9092,10.241.200.123:9092,10.241.200.124:9092



  • No labels