温馨提示×

debian上kafka怎样配置

小樊
48
2026-09-09 21:34:08
栏目: 智能运维

下面以 Debian(如 Debian 11 / 12) 为例,系统性地说明 Kafka 的部署与常见配置,包含:

  1. 环境准备
  2. 安装 Kafka
  3. 基础配置(单机 / 伪集群)
  4. 常用参数说明
  5. 启动与验证
  6. 常见问题

一、环境准备

1. 安装 Java(必须)

Kafka 依赖 JVM:

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

验证:

java -version

Kafka 3.x 推荐 Java 11 / 17


二、安装 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 kafka

目录结构:

/opt/kafka
 ├── bin
 ├── config
 ├── libs
 └── logs

三、基础配置(单节点)

1. Zookeeper 配置(Kafka < 3.3 或仍使用 ZK)

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

常用:

dataDir=/opt/kafka/zookeeper-data
clientPort=2181

2. Kafka Server 配置

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

最基础配置:

broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092
log.dirs=/opt/kafka/kafka-logs
zookeeper.connect=localhost:2181

四、Kafka KRaft 模式(无 Zookeeper,推荐新项目)

Kafka 3.3+ 支持 KRaft(生产可用)

1. 生成 Cluster ID

KAFKA_CLUSTER_ID=$(bin/kafka-storage.sh random-uuid)

2. 格式化存储

bin/kafka-storage.sh format \
  --cluster-id $KAFKA_CLUSTER_ID \
  --config config/kraft/server.properties

3. server.properties(KRaft)

process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
inter.broker.listener.name=PLAINTEXT
advertised.listeners=PLAINTEXT://localhost:9092
log.dirs=/opt/kafka/kafka-logs

五、启动 Kafka

使用 Zookeeper

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

使用 KRaft

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

六、验证 Kafka

1. 创建 Topic

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

2. 生产消息

bin/kafka-console-producer.sh \
  --topic test \
  --bootstrap-server localhost:9092

3. 消费消息

bin/kafka-console-consumer.sh \
  --topic test \
  --from-beginning \
  --bootstrap-server localhost:9092

七、常见配置说明

参数 说明
broker.id 唯一 ID
listeners 监听地址
log.dirs 数据目录
num.partitions 默认分区数
default.replication.factor 默认副本数
offsets.topic.replication.factor offset 副本

八、systemd 管理(推荐)

sudo nano /etc/systemd/system/kafka.service

示例:

[Unit]
Description=Apache Kafka
After=network.target

[Service]
Type=simple
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now kafka

九、常见问题

1. 端口无法访问

  • 检查 advertised.listeners
  • 云服务器需开放 9092

2. 数据目录权限

sudo chown -R kafka:kafka /opt/kafka

3. 内存不足

修改:

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

如果你需要:

  • Debian + Docker Kafka
  • 多 Broker 集群
  • SSL / SASL 安全配置
  • Kafka + Kafka Connect

告诉我你的使用场景,我可以直接给你完整配置。

0