温馨提示×

Kafka在Ubuntu怎么配置

小樊
53
2026-07-07 11:43:08
栏目: 智能运维

在 Ubuntu 上配置 Apache Kafka,下面给你一份从零到可用的完整配置流程(以 Kafka 最新稳定版为例),包括 JDK、Kafka 安装、单节点配置、启动与测试
如果你需要 集群 / 多 broker / systemd 自启 / 安全配置,我也可以继续补充。


一、前置条件

1️⃣ 安装 Java(必须)

Kafka 依赖 Java(推荐 JDK 8 / 11 / 17)

sudo apt update
sudo apt install openjdk-17-jdk -y

验证:

java -version

二、下载并安装 Kafka(官方二进制)

1️⃣ 下载 Kafka

Kafka 3.6.1 为例(可替换版本):

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

2️⃣ 配置环境变量(可选)

sudo nano /etc/profile.d/kafka.sh

写入:

export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin

生效:

source /etc/profile.d/kafka.sh

三、Kafka 核心配置(重点)

1️⃣ 目录结构说明

/opt/kafka
├── config       # 配置文件
├── bin          # 启动脚本
├── logs
└── libs

2️⃣ Zookeeper 配置(Kafka 自带)

Kafka 3.x 仍支持 Zookeeper(新版已支持 KRaft 模式)

配置文件:

sudo nano /opt/kafka/config/zookeeper.properties

默认即可,常用配置:

dataDir=/opt/kafka/zookeeper-data
clientPort=2181

创建数据目录:

mkdir -p /opt/kafka/zookeeper-data

3️⃣ Kafka Broker 配置

sudo nano /opt/kafka/config/server.properties

最基础必改项

broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/opt/kafka/kafka-logs
zookeeper.connect=localhost:2181

生产环境建议修改:

num.partitions=3
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1

创建日志目录:

mkdir -p /opt/kafka/kafka-logs

四、启动 Kafka

1️⃣ 启动 Zookeeper

cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties

✅ 新终端再启动 Kafka。


2️⃣ 启动 Kafka Broker

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

看到类似内容表示成功:

[KafkaServer id=0] started

五、验证 Kafka 是否正常运行

1️⃣ 查看 Topic

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

2️⃣ 创建 Topic

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

3️⃣ 发送消息(生产者)

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

输入消息后回车。


4️⃣ 消费消息(消费者)

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

✅ 能看到消息说明 Kafka 配置成功。


六、使用 KRaft 模式(无 Zookeeper,推荐新项目)

Kafka 3.x 支持 KRaft(实验 → 稳定)

1️⃣ 生成集群 ID

KAFKA_CLUSTER_ID=$(bin/kafka-storage.sh random-uuid)

2️⃣ 格式化日志目录

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

3️⃣ 启动 Kafka

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

七、常见问题排查

❌ 端口被占用

netstat -tunlp | grep 9092

❌ Java 找不到

which java

❌ Kafka 无法连接 Zookeeper

telnet localhost 2181

八、下一步你可以做什么?

✅ 配置 多 broker 集群
✅ 配置 systemd 服务自动启动
✅ 配置 Kafka 安全(SASL / SSL)
✅ 配置 外网访问(listeners 正确写法)
✅ 使用 Docker 部署 Kafka

如果你告诉我:

  • ✅ 是 学习 / 测试 / 生产
  • ✅ 是否使用 Docker
  • ✅ 是否需要 外网访问
  • ✅ Ubuntu 版本

我可以给你 针对性的生产级配置方案

0