温馨提示×

Ubuntu Kafka怎么配置

小樊
49
2026-07-07 11:40:17
栏目: 智能运维

下面分 Ubuntu 系统上配置 Kafka 的常见场景,给你一个从安装到基本配置的完整说明。以 Kafka 3.x + Ubuntu 20.04/22.04 为例(其他版本差别不大)。


一、前置条件

1. 安装 Java(Kafka 依赖 JVM)

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

验证:

java -version

二、下载并安装 Kafka

1. 下载 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 基本配置

Kafka 主要配置文件在:

/opt/kafka/config/

1. Zookeeper 配置(如果你还没用 KRaft)

编辑:

sudo nano config/zookeeper.properties

常见配置:

dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=0

创建数据目录:

sudo mkdir -p /var/lib/zookeeper

2. Kafka Broker 配置

编辑:

sudo nano config/server.properties

基础必改项

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

生产环境建议

num.partitions=3
default.replication.factor=2
offsets.topic.replication.factor=2
log.retention.hours=168
log.segment.bytes=1073741824

创建日志目录:

sudo mkdir -p /var/lib/kafka-logs

四、启动 Kafka(Zookeeper 模式)

1. 启动 Zookeeper

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

后台运行:

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

2. 启动 Kafka Broker

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

后台运行:

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

五、验证 Kafka 是否正常运行

1. 创建 Topic

bin/kafka-topics.sh --create \
--topic test-topic \
--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-topic \
--bootstrap-server localhost:9092

4. 消费消息

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

六、KRaft 模式(无 Zookeeper,推荐新版本)

Kafka 3.x 起支持 KRaft

1. 生成 Cluster ID

bin/kafka-storage.sh random-uuid

2. 格式化日志目录

bin/kafka-storage.sh format \
-t <cluster-id> \
-c config/kraft/server.properties

3. 修改配置

config/kraft/server.properties

关键配置:

process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://localhost:9092
log.dirs=/var/lib/kafka-logs

4. 启动

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

七、系统服务(开机自启,推荐)

可帮你写:

  • systemdkafka.service
  • zookeeper.service

如果你需要,直接告诉我 ✅


八、常见问题

1. 端口被占用

ss -lntp | grep 9092

2. 无法连接

  • 检查 listenersadvertised.listeners
  • 云服务器要开放端口

3. Java 版本不兼容

java -version

推荐 Java 11 / 17


九、我可以进一步帮你

你可以直接说:

  • 单机 / 集群
  • KRaft 还是 Zookeeper
  • 生产环境 / 测试环境
  • 是否用 Docker

我可以给你 完整生产级配置模板一键部署脚本

0