- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有 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/
我是一名优秀的程序员,十分优秀!