温馨提示×

ubuntu kafka如何做配置

小樊
49
2026-10-08 11:34:41
栏目: 智能运维

下面以 Ubuntu 上部署 Apache Kafka 为例,系统讲一下安装后如何做基础配置,适合单机/开发环境,也说明生产环境注意点。


一、前提:已安装 Kafka

假设你已经:

  • 安装了 Java(推荐 JDK 8/11)
  • 下载并解压 Kafka(如 /opt/kafka)
java -version

二、Kafka 核心配置文件位置

Kafka 配置主要在:

/opt/kafka/config/
├── server.properties      # Kafka Broker 配置(最重要)
├── zookeeper.properties  # Zookeeper 配置(Kafka 2.8 之前需要)
├── producer.properties
└── consumer.properties

三、基础 Broker 配置(server.properties)

编辑:

sudo nano /opt/kafka/config/server.properties

1️⃣ 基础必改项(单机)

# 每个 broker 唯一
broker.id=0

# 监听地址(非常重要)
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092

# 日志(消息存储)目录
log.dirs=/tmp/kafka-logs

# Zookeeper(Kafka < 3.0)
zookeeper.connect=localhost:2181

✅ 单机测试这样就够了


2️⃣ 多网卡 / 远程访问配置(常见坑)

如果你的 Kafka 在服务器上,客户端在本地:

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

⚠️ 不要只写 localhost,否则远程连不上


四、Zookeeper 配置(旧版本 Kafka)

sudo nano /opt/kafka/config/zookeeper.properties
dataDir=/tmp/zookeeper
clientPort=2181

启动:

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

五、Kafka 3.x(无 Zookeeper,KRaft 模式)

如果你用的是 Kafka 3.3+:

1️⃣ 生成集群 ID

bin/kafka-storage.sh random-uuid

2️⃣ 修改配置

config/kraft/server.properties

关键配置:

process.roles=broker,controller
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092
controller.quorum.voters=0@localhost:9093

3️⃣ 格式化并启动

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

六、生产环境建议配置(重要)

# 不允许自动创建 topic(规范)
auto.create.topics.enable=false

# 副本因子
default.replication.factor=3
min.insync.replicas=2

# 单条消息大小
message.max.bytes=10485760

# 日志保留
log.retention.hours=168
log.segment.bytes=1073741824

七、systemd 开机自启(推荐)

创建:

sudo nano /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
After=network.target

[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target
sudo systemctl enable kafka
sudo systemctl start kafka

八、验证配置是否生效

bin/kafka-topics.sh --create \
  --topic test \
  --bootstrap-server localhost:9092 \
  --partitions 1 \
  --replication-factor 1
bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092

九、常见问题

❌ 连不上 → advertised.listeners 错
❌ 启动失败 → log.dirs 无权限
❌ topic 自动创建 → 配置没生效


如果你愿意,可以告诉我:

  • Kafka 版本
  • 单机还是集群
  • 本地还是云服务器

我可以直接给你 一份可复制的完整配置。

0 踩