温馨提示×

debian的kafka要怎么配置

小樊
39
2026-09-25 04:22:44
栏目: 智能运维

下面按在 Debian(如 Debian 11/12)上部署 Apache Kafka的常见场景,给你一套从安装到基础配置的说明。如果你指的是 Debian 自带的 kafka 包 或 Docker 中的 Kafka,我也可以单独说。


一、环境准备

1. 安装 Java(Kafka 依赖)

Kafka 需要 JVM:

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

Kafka 3.x 推荐 Java 11 / 17


二、下载并安装 Kafka

1. 创建用户(建议)

sudo useradd -m -s /bin/bash kafka
sudo su - kafka

2. 下载 Kafka

cd /opt
sudo wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
sudo tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 /opt/kafka

三、核心配置文件位置

Kafka 主要配置文件在:

/opt/kafka/config/
├── server.properties      # Broker 配置(最重要)
├── zookeeper.properties  # ZooKeeper 配置
├── producer.properties
└── consumer.properties

四、基础 Kafka 配置(单节点)

1. 配置 server.properties

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

最常用配置项

# Broker 唯一 ID
broker.id=0

# 监听地址(重要)
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://你的服务器IP:9092

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

# ZooKeeper(Kafka 3.0 前需要)
zookeeper.connect=localhost:2181

# 分区与副本
num.partitions=1
default.replication.factor=1

# 自动创建 topic
auto.create.topics.enable=true

⚠️ 如果是云服务器:

  • advertised.listeners 必须写外部可访问 IP
  • 防火墙放行 9092 和 2181

五、ZooKeeper 配置(老版本 Kafka)

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

启动 ZooKeeper:

/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties

六、启动 Kafka

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

查看日志:

tail -f /opt/kafka/logs/server.log

七、Kafka 3.x(无 ZooKeeper 模式 KRaft)

如果你用的是 Kafka 3.3+,推荐 KRaft 模式:

# 生成集群 ID
/opt/kafka/bin/kafka-storage.sh random-uuid

# 格式化
/opt/kafka/bin/kafka-storage.sh format \
  -t <cluster-id> \
  -c /opt/kafka/config/kraft/server.properties

# 启动
/opt/kafka/bin/kafka-server-start.sh \
  -daemon /opt/kafka/config/kraft/server.properties

八、常用测试命令

# 创建 topic
kafka-topics.sh --create \
  --topic test \
  --bootstrap-server localhost:9092 \
  --partitions 1 --replication-factor 1

# 生产消息
kafka-console-producer.sh \
  --topic test --bootstrap-server localhost:9092

# 消费消息
kafka-console-consumer.sh \
  --topic test --bootstrap-server localhost:9092 --from-beginning

九、开机自启(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

十、常见坑提醒

✅ advertised.listeners 配错 → 客户端连不上
✅ 防火墙没开 9092
✅ 用 root 跑 Kafka(不推荐)
✅ 磁盘满了导致 broker 宕机


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

  • 你是 单机 / 集群
  • 是否用 Docker
  • Kafka 版本
  • 是否要 公网访问

我可以直接给你完整可复制的配置文件。

0 踩