【问题标题】:How to run multiple ExecStart in kafka.service for Multiple brokers in Kafka?如何在 kafka.service 中为 Kafka 中的多个代理运行多个 ExecStart?
【发布时间】:2020-04-09 11:33:15
【问题描述】:

我想在一个服务中运行多个 ExecStart。

我是这样配置的,

[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service

[Service]
Type=oneshot
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-1.properties
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-2.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target

但是,当我运行时,它首先执行 ExecStart。它不执行接下来的两个 ExecStart。

我如何实现它?

【问题讨论】:

  • 你为什么不直接用 apt get 安装 Confluent Platform 并附带 SystemD 脚本? docs.confluent.io/current/installation/scripted-install.html
  • @cricket_007 你能详细说明你所说的吗?
  • 您使用的是 Ubuntu。您使用 Apt 与 Ubuntu 一起安装。你为什么不这样做? Confluent 是由 Kafka 的原始开发者创办的公司。

标签: ubuntu apache-kafka systemd systemctl


【解决方案1】:

你不能。您可以使用多个相互依赖的 systemd 脚本,或者将所有三个命令封装在一个命令中(例如,docker-compose -f kafka-cluster.yaml up

FWIW,这绝不是容错的,或者真的不是一个好主意,除非您有至少 18G 内存(每个提供 6G RAM)和该机器上至少 3 个可用机械硬盘(三个或更多池JBOD for log.dirs) 和至少 3 个独立的 CPU。

注意:ExecStop 也只是停止代理进程之一

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    相关资源
    最近更新 更多