Ich habe 5 VMs mit CentOS 7, jede mit Kafka und dem eingebetteten Tierpfleger läuft.CentOS 7 systemd Benötigt und After-Werte für Kafka abhängig von lokalen Zookeeper?
In meinen Systemdatendateien habe ich versucht, zookee.service als Benötigt die Abhängigkeit von kafka.service zu verwenden, aber es scheint nicht zu funktionieren, und die Dokumente nicht explizit klären, ob nur .target-Dateien gültige Werte sind Requires (und ich nehme auch After/Before an) oder .service-Dateien selbst sind ebenfalls erlaubt.
Muss ich einen zoekeeper.target für Requires verwenden?
Soll ich auch Wants anstelle von Requires verwenden, falls Kafka gut starten kann, aber der lokale Zookeeper nicht? Auf diese Weise würde ich davon ausgehen, dass Kafka sich mit einem der anderen Zoowärter verbinden würde, da er alle fünf kennt, während der örtliche Tierpfleger repariert werden könnte und später wieder in das Ensemble zurückkehren würde. Aber der Tierpfleger würde zumindest versuchen, jederzeit mit Kafka zu beginnen.
Hier sind meine .service Dateien:
kafka.service
# Kafka server (broker) management
[Unit]
Description=Apache Kafka server (broker)
Documentation=http://kafka.apache.org/documentation.html
Requires=network.target remote-fs.target zookeeper.service
After=network.target remote-fs.target zookeeper.service
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
zookeeper.service
# Zookeeper server management (Kafka-embedded)
[Unit]
Description=Apache Zookeeper server (Kafka-embedded)
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=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
edit: Ich erwartete eine Abhängigkeitshierarchie zeigt zookeeper unter kafka eingekerbt, um zu sehen, aber sie erscheinen nur als Geschwister:
# systemctl --all list-dependencies | egrep '(kafka|zookeeper)'
● ├─kafka.service
● ├─zookeeper.service