温馨提示×

Ubuntu下Kafka如何配置

小樊
35
2026-07-07 11:42:24
栏目: 智能运维

Ubuntu 下配置 Apache Kafka,一般分为以下几个步骤:安装、配置、启动、验证。下面以 Kafka 3.x + Ubuntu 22.04 为例,给出一套清晰、常用的配置流程。


一、前置条件

1. 安装 Java

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

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

验证:

java -version

二、下载并安装 Kafka

1. 下载 Kafka

前往官网获取最新版本: https://kafka.apache.org/downloads

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

三、Kafka 目录结构说明

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

四、Kafka 核心配置

Kafka 依赖 ZooKeeper(新版本也可用 KRaft,后面说明)


五、方式一:使用 ZooKeeper(传统方式)

1. 配置 ZooKeeper

编辑配置:

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

常见配置:

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

2. 配置 Kafka

编辑 Kafka 配置:

sudo vim /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

说明:

  • broker.id:集群中唯一
  • listeners:客户端连接地址
  • log.dirs:消息存储目录
  • zookeeper.connect:ZooKeeper 地址

六、启动 Kafka(ZooKeeper 方式)

1. 启动 ZooKeeper

cd /opt/kafka
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. 查看进程

jps

应看到:

QuorumPeerMain
Kafka

2. 创建 Topic

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

3. 查看 Topic

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

4. 发送 / 消费消息

发送:

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

消费:

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

八、方式二:KRaft 模式(无 ZooKeeper,推荐新环境)

Kafka 3.x 支持 KRaft(生产可用)

1. 生成 Cluster 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. 修改 KRaft 配置

vim config/kraft/server.properties

关键配置:

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

4. 启动 Kafka

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

九、常见生产环境优化建议

num.network.threads=8
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
log.retention.hours=168
log.segment.bytes=1073741824

十、常见问题

1. 端口被占用

netstat -tulnp | grep 9092

2. Java 找不到

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

3. broker.id 冲突(集群)

每个节点 broker.id 必须唯一


如果你愿意,我可以:

  • 给你 Kafka 集群(3节点)配置示例
  • 教你 systemd 管理 Kafka 开机自启
  • 或直接给你 docker-compose 一键方案

你打算用在 生产 还是 本地开发

0