运行 Kafka 工作进程即服务

Run Kafka Worker Process as a service

我有 Kafka 运行 一个 Sql 连接器。目前这是 运行ning 在 Linux 服务器上,我正在使用 Putty 连接来配置和 运行 一切。我可以在独立模式下正常启动工作进程,一切都按预期进行。然而,它 感觉 就像我应该能够离开我的终端会话并让工作人员 运行ning 像服务一样。目前,我结束了终端会话,只是重新连接了 putty,但同样,这 感觉 不是正确的方法。有谁知道如何让工作人员 运行 喜欢服务?

./connect-standalone.sh '../config/worker.properties' '../config/connector.properties'

首先我想告诉你,运行单机模式下的Kafka-connect不是一个好的选择,你也可以运行分布式模式下的Kafka-connect单机.


如果您不想创建服务,则可以使用 screen 实用程序。

例如

  1. 创建屏幕

    screen -S kafka-connect

  2. 运行 kafka-connect 命令

    ./connect-standalone.sh '../config/worker.properties' '../config/connector.properties'

  3. 使用ctrl+A+D

    解除屏幕技术
  4. 列表和恢复屏幕

    屏幕-ls

    screen -r kafka-connect

  5. 在屏幕内输入 exit 到终端附加屏幕。


服务

/etc/systemd/system 目录中创建一个新文件 kafka-connect.service

kafka-connect.service

[Unit]
Description=Kakfka-connect
After=network.target

[Service]
User=ubuntu
Group=ubuntu
Environmet="KAFKA_HEAP_OPTS=-Xmx1G -Xms1G"
Environment="KAFKA_OPTS=-javaagent:/home/ubuntu/prometheus/jmx_prometheus_javaagent-0.15.0.jar=8080:/home/ubuntu/prometheus/kafka-connect.yml"
ExecStart=/home/ubuntu/kafka_2.13-2.7.0/bin/connect-distributed.sh /home/ubuntu/kafka_2.13-2.7.0/config/connect-distributed.properties

[Install]
WantedBy=multi-user.target

在 ExecStart 中,这是以分布式模式启动 Kafka-connect 服务的命令,你也可以更改它如果你还没有安装 jmx_exporter 那么你可以从服务中删除 Environment="KAFKA_OPTS=-javaagent:/home/ubuntu/prometheus/jmx_prometheus_javaagent-0.15.0.jar=8080:/home/ubuntu/prometheus/kafka-connect.yml" 这一行.