永久启动 Kafka 服务器

Posted

技术标签:

【中文标题】永久启动 Kafka 服务器【英文标题】:Starting Kafka Server Permanently 【发布时间】:2013-01-30 06:18:44 【问题描述】:

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

我按以下顺序执行了以下操作: (1) SSH进入Instance (2) 启动 Zookeper (3) 启动卡夫卡 (4) 执行生产者和消费者程序。

到这里为止一切正常。但是,一旦我关闭启动 Kafka 的 SSH 窗口,Kafka 服务就会停止。我无法再执行生产者和消费者程序。

即使在我关闭 SSH 窗口之后,如何让 Kafka 服务器永久地处理所有请求。

谢谢。

【问题讨论】:

【参考方案1】:

这现在在 kafka 和 zookeeper 启动脚本中得到正式支持。因此,如果您使用的是最新的(自 2015 年 8 月以来)kafka,您可以使用 -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

【讨论】:

@NikeshDevaki,-daemon 是你现在应该使用的,因为 kafka 直接支持它。 这在 Windows 上不起作用(使用 .bat 文件启动 ZK、Kafka) 有没有办法让日志在初始化时显示? -daemon 标志似乎隐藏了所有这些,因此更难解决潜在的启动异常。【参考方案2】:

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

或者:

在这里尝试新贵脚本:upstart script for kafka

【讨论】:

不知道为什么这么少的人赞成我的回答,但下面的一个....没有太大区别 以上shell执行后,如何查看是否已经运行? 如果没有必要,如何停止 zookeeper 和 Kafka?【参考方案3】:

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 &

【讨论】:

现在使用-daemon 开关是更好的选择 @kopos 你能详细说明为什么会这样吗?

以上是关于永久启动 Kafka 服务器的主要内容,如果未能解决你的问题,请参考以下文章

Docker(单机Kafka安装)

Linux基于CentOS通过Systemctl 设置开机启动/永久性关闭服务

Kafka 3.0 源码笔记-Kafka 服务端的启动与请求处理源码分析

kafka服务器上Kafka启动 Cannot allocate memory

Windows系统下快速启动Kafka

linux安装kafka