温馨提示×

Linux Kafka怎么启动

小樊
46
2026-07-18 03:29:28
栏目: 智能运维

在 Linux 上启动 Kafka,通常需要先启动 Zookeeper(或 KRaft),再启动 Kafka Broker。下面按最常见的两种模式给你说明(以 Kafka 3.x 为例)。


一、前提条件

  • 已安装 Java 8 或以上
  • 已下载并解压 Kafka,例如:
tar -zxvf kafka_2.13-3.6.0.tgz
cd kafka_2.13-3.6.0

二、方式一:使用 Zookeeper(默认方式)

1️⃣ 启动 Zookeeper

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

默认端口:2181

如果想后台运行:

nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &

2️⃣ 启动 Kafka Broker

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

后台运行:

nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &

3️⃣ 验证是否启动成功

jps

看到类似:

QuorumPeerMain   # Zookeeper
Kafka            # Kafka

三、方式二:使用 KRaft(无 Zookeeper,推荐新版本)

Kafka 2.8+ 支持,3.x 后逐步成为主流

1️⃣ 生成集群 ID

bin/kafka-storage.sh random-uuid

例如得到:

xtz1234567890

2️⃣ 格式化日志目录

bin/kafka-storage.sh format \
  -t xtz1234567890 \
  -c config/kraft/server.properties

3️⃣ 启动 Kafka(KRaft 模式)

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

后台运行:

nohup bin/kafka-server-start.sh config/kraft/server.properties > kafka.log 2>&1 &

四、快速测试 Kafka 是否可用

创建 Topic

bin/kafka-topics.sh --create \
  --topic test \
  --bootstrap-server localhost:9092 \
  --partitions 1 \
  --replication-factor 1

发送消息

bin/kafka-console-producer.sh \
  --topic test \
  --bootstrap-server localhost:9092

消费消息

bin/kafka-console-consumer.sh \
  --topic test \
  --from-beginning \
  --bootstrap-server localhost:9092

五、常见问题

✅ 端口被占用

netstat -tunlp | grep 9092

✅ Java 未安装

java -version

✅ 启动后立刻退出

检查:

  • server.propertieslog.dirs
  • 权限问题
  • 端口冲突

六、总结(最简流程)

Zookeeper 模式

# 1. 启动 Zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties

# 2. 启动 Kafka
bin/kafka-server-start.sh config/server.properties

KRaft 模式

bin/kafka-storage.sh format -t <UUID> -c config/kraft/server.properties
bin/kafka-server-start.sh config/kraft/server.properties

如果你告诉我:

  • Kafka 版本
  • 单机 / 集群
  • 是否是生产环境

我可以给你一份更贴合你场景的启动方案

0