代码之家  ›  专栏  ›  技术社区  ›  redgiant

CentOS 7 systemd要求Kafka依赖于当地动物园管理员的值和之后的值?

  •  2
  • redgiant  · 技术社区  · 7 年前

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

    在我的系统单位文件中,我尝试使用zookeeper。服务需要卡夫卡的依赖性。但它似乎不起作用,文档也没有明确说明是否只有。目标文件是Requires的有效值(我也假设是在Requires之后/之前),还是。服务文件本身也是允许的。

    此外,我应该用“需要”而不是“需要”,以防卡夫卡可以很好地开始,但当地的动物园管理员不能?这样,我假设卡夫卡会连接到其他一个动物园管理员,因为它知道所有的5个,而当地的动物园管理员可以修复,并开始重新加入该团队后。但动物园管理员至少会尝试在卡夫卡的任何时候开始。

    卡夫卡服务

    # 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.service(动物园管理员服务)

    # 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
    

    # systemctl --all list-dependencies | egrep '(kafka|zookeeper)'
    ● ├─kafka.service
    ● ├─zookeeper.service
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   redgiant    7 年前

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

    我仍然不知道为什么它没有显示zookeeper作为卡夫卡的依赖项,但当我这样做时,它确实表现得像这样:

    sudo systemctl start kafka