Как запустить несколько ExecStart в kafka.service для нескольких брокеров в Кафке? - PullRequest
0 голосов
/ 09 апреля 2020

Я хочу запустить несколько ExecStart в одном сервисе.

Я настраиваю так:

[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service

[Service]
Type=oneshot
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-1.properties
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-2.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target

Но, когда я запускаю, он запускает первый ExecStart. Он не выполняет следующие два ExecStart.

Как мне этого добиться?

1 Ответ

1 голос
/ 10 апреля 2020

Вы не можете. Вы можете использовать несколько сценариев systemd, которые зависят друг от друга, или объединить все три в одну команду (например, docker-compose -f kafka-cluster.yaml up)

FWIW, это ни в коем случае не является отказоустойчивым или действительно хорошей идеей, если у вас нет не менее 18 ГБ памяти (по 6 ГБ ОЗУ каждый) и не менее 3-х доступных механических жестких дисков на этом компьютере (три или более пулов JBOD для log.dirs) и как минимум 3 отдельных ЦП.

Примечание: ExecStop также останавливает только один из процессов брокера

...