linux - 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 文件也相似,只有路径不同。
解决方案
您不需要整个安装文件夹的副本。您也不应该在同一台机器上运行多个 Kafka 或 Zookeeper,因为您仍然存在单点故障,无论是磁盘还是网络接口
特别是,因为不清楚您是否修改了任何默认存储目录
注意:如果您使用 APT 安装 Confluent Platform,它会附带自己的 SystemD 脚本
推荐阅读
- node.js - 如何正确更新 module.exports?
- cors - Haproxy CORS 请求的资源上不存在“Access-Control-Allow-Origin”标头
- python - 在 Python 中调试 xml ElementTrees
- apache-flink - Flink example job of long-running streaming processing
- java - 创建页面加载动画是spring boot
- python - Python:根据其值将一列拆分为两列
- html - 如何使用 CSS 在顶部和底部制作一个打开的盒子作为容器?
- python - 分配器 (GPU_0_bfc) 尝试分配内存不足
- sql - 在 PostgreSQL 12 上按 id(唯一)分组的一次查询中同时获取房间成员、房间所有者和管理员
- reactjs - 如何在 ReactJs 应用程序中使用 reduce() 而不是传统的 foreach 循环