gpt4 book ai didi

CentOS 7 systemd Requires 和 After 值让 Kafka 依赖于本地 Zookeeper?

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:01 24 4
gpt4 key购买 nike

我有 5 个装有 CentOS 7 的虚拟机,每个虚拟机都在运行 kafka 及其嵌入式 zookeeper。

在我的 systemd 单元文件中,我尝试使用 zookeeper.service 作为 kafka.service 的 Requires 依赖项,但它似乎不起作用,并且文档没有明确说明是否只有 .target 文件是 Requires 的有效值(我也假设 After/Before),或者 .service 文件本身也是允许的。

我必须为 Requires 使用 zookeeper.target 吗?

此外,我是否应该使用 Wants 而不是 Requires,以防 Kafka 可以正常启动但本地 Zookeeper 不能?这样,我假设 Kafka 会连接到其他动物园管理员之一,因为它知道所有 5 个动物园管理员,而本地动物园管理员可以修复并稍后开始重新加入合奏。但 kafka 启动时,zookeeper 至少会尝试启动。

这是我的 .service 文件:

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 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

编辑:我希望看到一个依赖层次结构显示 zookeeper 在 kafka 下方缩进,但它们只是显示为 sibling :

# systemctl --all list-dependencies | egrep '(kafka|zookeeper)'
● ├─kafka.service
● ├─zookeeper.service

最佳答案

.target 或 .service 文件都可以是依赖项(.target 被首选作为分组单元而不是 .service 文件用于叶子)。在 Requires、Wants、After 中都可以正常工作,例如:

Requires=network.target remote-fs.target zookeeper.service
After=network.target remote-fs.target zookeeper.service

我仍然不知道为什么它不将 zookeeper 显示为 kafka 的依赖项,但它确实像我显示的那样:

sudo systemctl start kafka

关于CentOS 7 systemd Requires 和 After 值让 Kafka 依赖于本地 Zookeeper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45222669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com