下面给你一份 Linux 下 Kafka 配置入门指南(以较新版本为例,如 Kafka 3.x / 4.x),从单机到常用生产配置都会覆盖,适用于 Kafka 初学者或运维部署场景。
Kafka 依赖 Java:
java -version
推荐:
如未安装(以 JDK 11 为例):
sudo apt install openjdk-11-jdk # Ubuntu
sudo yum install java-11-openjdk # CentOS
官网:https://kafka.apache.org/downloads
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -zxvf kafka_2.13-3.6.1.tgz
mv kafka_2.13-3.6.1 /opt/kafka
cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties
默认端口:2181
bin/kafka-server-start.sh config/server.properties
✅ Kafka 默认端口:9092
server.properties)路径:
config/server.properties
broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/opt/kafka/logs
num.partitions=3
说明:
| 配置项 | 说明 |
|---|---|
| broker.id | 每个 broker 唯一 |
| listeners | 监听地址 |
| log.dirs | 数据存放目录 |
| num.partitions | topic 默认分区数 |
log.retention.hours=168
log.retention.bytes=-1
log.segment.bytes=1073741824
| 配置 | 含义 |
|---|---|
| retention.hours | 数据保留时间(7天) |
| retention.bytes | 总大小(-1 不限制) |
| segment.bytes | 单个 segment 大小 |
num.network.threads=8
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://服务器公网IP:9092
否则 客户端连不上
auto.create.topics.enable=false
default.replication.factor=3
min.insync.replicas=2
编辑:
bin/kafka-server-start.sh
或设置环境变量:
export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G"
bin/kafka-storage.sh random-uuid
bin/kafka-storage.sh format -t <uuid> -c config/kraft/server.properties
bin/kafka-server-start.sh config/kraft/server.properties
✅ 生产环境越来越推荐 KRaft
bin/kafka-topics.sh --create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 3 \
--replication-factor 1
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
bin/kafka-console-producer.sh \
--topic test \
--bootstrap-server localhost:9092
bin/kafka-console-consumer.sh \
--topic test \
--from-beginning \
--bootstrap-server localhost:9092
/opt/kafka
├── config
│ ├── server.properties
│ └── zookeeper.properties
├── logs
├── data
❌ Connection refused
listeners / advertised.listeners❌ broker.id 冲突
❌ 磁盘写满
log.dirs + 保留策略你可以直接告诉我:
我可以给你 一份可直接用的 server.properties 配置模板 ✅