温馨提示×

怎么在linux跑kafka

小樊
47
2026-09-23 14:23:33
栏目: 智能运维

在 Linux 上跑 Kafka,一般分 单机测试生产集群 两种。下面先给你一份最常用、最简单的单机跑法(适合学习和开发)。


一、准备工作

1. 安装 Java(Kafka 依赖 JVM)

Kafka 3.x 需要 Java 8+(推荐 Java 11/17)

java -version

如果没有:

# Ubuntu / Debian
sudo apt update
sudo apt install openjdk-11-jdk -y

# CentOS
sudo yum install java-11-openjdk-devel -y

二、下载并解压 Kafka

cd /opt
sudo wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
sudo tar -xzf kafka_2.13-3.6.1.tgz
sudo mv kafka_2.13-3.6.1 kafka
cd kafka

版本可自行更换


三、启动 Kafka(依赖 Zookeeper)

方式一:Kafka 自带 Zookeeper(最简单)

1. 启动 Zookeeper

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

新开一个终端继续

2. 启动 Kafka

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

看到 started (kafka.server.KafkaServer) 就成功了。


四、测试 Kafka 是否可用

1. 创建 Topic

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

2. 查看 Topic

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

3. 生产消息

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

输入内容回车即可。

4. 消费消息(新终端)

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

五、后台运行(常用)

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

六、Kafka 3.x 新特性(不用 Zookeeper)

如果你用的是 Kafka 3.3+,可以用 KRaft 模式

# 生成集群ID
bin/kafka-storage.sh random-uuid

# 格式化
bin/kafka-storage.sh format \
  --config config/kraft/server.properties \
  --cluster-id xxx

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

七、常见问题

  • 端口被占用:检查 9092 / 2181
  • Java 版本不对:换 JDK
  • 无法连接:检查 listeners=PLAINTEXT://:9092

如果你愿意,我可以:

  • 帮你写 systemd 服务
  • 教你 Docker 跑 Kafka
  • 或帮你搭 生产级集群

你现在是学习还是准备上线?

0