首页 > 解决方案 > ubuntu 中的 systemd 文件未按预期运行

问题描述

我正在一台机器上设置一个 kafka 集群,为此我制作了 5 个 kafka 副本并相应地应用了配置。现在,我想通过使用 systemd 文件分别启动和停止每个 zookeeper,因为我制作了 systemd 文件的副本并将它们配置如下。现在我面临的问题是,当我试图停止一个 zookeeper 实例时,它正在停止所有 zookeeper。为什么会这样,我需要如何配置 systemd 文件?

第一个 zookeeper systemmd 文件:

[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
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[Unit]

第二个zookeeper systemmd文件:

[Unit]
Description=Apache Zookeeper server1
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
ExecStart=/usr/local/kafka_1/bin/zookeeper-server-start.sh /usr/local/kafka_1/config/zookeeper.properties
ExecStop=/usr/local/kafka_1/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target[Unit]

其余的 systemd 文件也相似,只有路径不同。

标签: linuxubuntuapache-kafka

解决方案


您不需要整个安装文件夹的副本。您也不应该在同一台机器上运行多个 Kafka 或 Zookeeper,因为您仍然存在单点故障,无论是磁盘还是网络接口

特别是,因为不清楚您是否修改了任何默认存储目录

注意:如果您使用 APT 安装 Confluent Platform,它会附带自己的 SystemD 脚本


推荐阅读