下面以 Linux 环境下 Kafka 的基本配置 为例,按 单节点 → 常用配置 → 启动 → 验证 的顺序说明。
示例基于 Kafka 3.x(自带 Zookeeper 或 KRaft),如果你用的是旧版本或生产集群,可再细化。
Kafka 依赖 Java:
java -version
推荐:
如未安装(以 OpenJDK 11 为例):
sudo yum install -y java-11-openjdk # CentOS
sudo apt install -y openjdk-11-jdk # Ubuntu
cd /opt
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz
tar -zxvf kafka_2.13-3.6.0.tgz
mv kafka_2.13-3.6.0 kafka
cd kafka
适合学习、测试、老集群
Kafka 2.8+ 支持,3.x 开始成熟
下面先讲 Zookeeper 模式,再补充 KRaft 配置。
默认已可用,如需修改:
vim config/zookeeper.properties
常见配置:
dataDir=/opt/kafka/zookeeper-data
clientPort=2181
启动 Zookeeper:
bin/zookeeper-server-start.sh config/zookeeper.properties
后台运行:
nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &
编辑配置文件:
vim config/server.properties
# broker 唯一 ID
broker.id=0
# 监听地址(非常重要)
listeners=PLAINTEXT://localhost:9092
# 对外暴露地址(客户端连接用)
advertised.listeners=PLAINTEXT://localhost:9092
# 日志(数据)目录
log.dirs=/opt/kafka/kafka-logs
# Zookeeper 地址
zookeeper.connect=localhost:2181
# 每个 topic 默认副本数
default.replication.factor=1
# 是否允许自动创建 topic
auto.create.topics.enable=true
# 日志保留时间(小时)
log.retention.hours=168
# 单日志段大小
log.segment.bytes=1073741824
bin/kafka-server-start.sh config/server.properties
后台启动:
nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &
jps
应看到:
QuorumPeerMain # Zookeeper
Kafka
bin/kafka-topics.sh \
--create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 \
--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
✅ 输入消息后能消费,说明 Kafka 正常工作。
bin/kafka-storage.sh random-uuid
示例输出:
xtz1234567890
bin/kafka-storage.sh format \
--cluster-id xtz1234567890 \
--config config/kraft/server.properties
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
bin/kafka-server-start.sh config/kraft/server.properties
netstat -tunlp | grep 9092
修改:
vim bin/kafka-server-start.sh
export KAFKA_HEAP_OPTS="-Xms256M -Xmx512M"
| 项目 | 配置 |
|---|---|
| 配置文件 | config/server.properties |
| 数据目录 | log.dirs |
| 监听端口 | listeners |
| 协调器 | Zookeeper / KRaft |
| 启动 | kafka-server-start.sh |
如果你需要:
告诉我你的具体场景,我可以给你一份 可直接用的生产级配置。