永久启动Kafka服务器

25

我已在Amazon EC2实例上设置了Kafka。

我按照以下顺序完成了以下步骤: (1) SSH进入实例 (2) 启动Zookeper (3) 启动Kafka (4) 执行生产者和消费者程序。

到目前为止一切正常。然而,一旦我关闭了启动Kafka的SSH窗口,Kafka服务就会停止。 我将无法再执行生产者和消费者程序。

如何让Kafka服务器永久运行以处理所有请求,即使我关闭SSH窗口。

谢谢。

3个回答

51

现在kafka和zookeeper启动脚本已官方支持此功能。如果您使用最新版本(自2015年8月起),则可以使用以下命令:-daemon。

# ./kafka-server-start.sh
USAGE: ./kafka-server-start.sh [-daemon] server.properties

# ./zookeeper-server-start.sh
USAGE: ./zookeeper-server-start.sh [-daemon] zookeeper.properties

2
@NikeshDevaki,现在应该使用-daemon,因为kafka直接支持它。 - Atul Soman
这在Windows上不起作用(使用.bat文件启动ZK、Kafka) - CᴴᴀZ
有没有办法在初始化时显示日志?似乎“-daemon”标志会隐藏所有这些内容,因此更难排除潜在的启动异常。 - payne

36

尝试运行bin/kafka-server-start.sh -daemon config/server.properties

或者,可以在这里使用upstart脚本:kafka的upstart脚本


1
不知道为什么很少有人点赞我的回答,但是下一个回答也差不多。 - BAE
执行上述 shell 后,如何检查它是否已经在运行? - Dendi Handian
如果不需要,如何停止Zookeeper和Kafka? - Vũ Anh Dũng

29

nohup 是命令开头必须加的,这样输出会记录在文件中而不是显示在屏幕上。同时,在命令结尾必须加上 & 以在后台启动服务器:

bin/zookeeper-server-start.sh config/zookeeper.properties

bin/kafka-server-start.sh config/server.properties

修改为:

nohup bin/zookeeper-server-start.sh config/zookeeper.properties &

nohup bin/kafka-server-start.sh config/server.properties &


1
现在使用-daemon开关是更好的选择。 - kopos
@kopos,您能详细说明为什么会这样吗? - Richard Steinbrecht
@RichardSteinbrecht nohup .. & 技术上已经实现了 -daemon 支持的功能。运行 kafka 服务器,使其作为守护进程无头运行。 - kopos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接