温馨提示×

Linux Kafka怎么配置

小樊
43
2026-07-06 10:49:37
栏目: 智能运维

下面给你一份 Linux 下 Kafka 配置入门指南(以较新版本为例,如 Kafka 3.x / 4.x),从单机到常用生产配置都会覆盖,适用于 Kafka 初学者或运维部署场景


一、前置条件

1️⃣ 安装 JDK

Kafka 依赖 Java:

java -version

推荐:

  • JDK 8 / 11 / 17(Kafka 3.x+ 建议 11+)

如未安装(以 JDK 11 为例):

sudo apt install openjdk-11-jdk   # Ubuntu
sudo yum install java-11-openjdk  # CentOS

2️⃣ 下载 Kafka

官网: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

二、基础配置(单机模式)

1️⃣ 启动 Zookeeper(Kafka 2.x 需要,3.x+ 可选)

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

默认端口:2181


2️⃣ 启动 Kafka

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

✅ Kafka 默认端口:9092


三、核心配置文件详解(server.properties

路径:

config/server.properties

✅ 最常用配置项

1️⃣ broker 基础配置

broker.id=0
listeners=PLAINTEXT://localhost:9092
log.dirs=/opt/kafka/logs
num.partitions=3

说明:

配置项 说明
broker.id 每个 broker 唯一
listeners 监听地址
log.dirs 数据存放目录
num.partitions topic 默认分区数

2️⃣ 数据保留策略(非常重要)

log.retention.hours=168
log.retention.bytes=-1
log.segment.bytes=1073741824
配置 含义
retention.hours 数据保留时间(7天)
retention.bytes 总大小(-1 不限制)
segment.bytes 单个 segment 大小

3️⃣ 网络与线程

num.network.threads=8
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400

四、生产环境推荐配置(重点)

✅ 1️⃣ 监听外网 IP(常见坑)

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://服务器公网IP:9092

否则 客户端连不上


✅ 2️⃣ 关闭自动创建 topic(推荐)

auto.create.topics.enable=false

✅ 3️⃣ 副本与高可用

default.replication.factor=3
min.insync.replicas=2

✅ 4️⃣ JVM 参数(重要)

编辑:

bin/kafka-server-start.sh

或设置环境变量:

export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G"

五、Kafka 3.x+(KRaft 模式,不用 Zookeeper)

1️⃣ 生成集群 ID

bin/kafka-storage.sh random-uuid

2️⃣ 格式化存储

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

3️⃣ 启动

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

生产环境越来越推荐 KRaft


六、常用运维命令

创建 topic

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

查看 topic

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 + 保留策略

九、我可以继续帮你

你可以直接告诉我:

  • ✅ 单机 / 集群 / 生产环境?
  • ✅ Kafka 版本?
  • ✅ 是否用 Zookeeper?
  • ✅ 是否外网访问?

我可以给你 一份可直接用的 server.properties 配置模板

0