温馨提示×

Debian下Kafka怎么配置

小樊
47
2026-08-06 19:44:30
栏目: 智能运维

下面以 Debian 11/12 为例,系统地说明 Kafka 的安装与基本配置。示例基于 Kafka 3.x + Java 17,这是目前比较主流的组合。


一、前置条件

1. 安装 Java

Kafka 依赖 JVM,推荐 OpenJDK。

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

验证:

java -version

二、下载并安装 Kafka

Kafka 官方不再自带 ZooKeeper(新版本推荐 KRaft 模式),下面分别说明。

方式一:使用 Kafka 自带 KRaft(推荐 ✅)

1. 下载 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

2. 目录结构

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

三、KRaft 模式配置(无 ZooKeeper)

1. 生成 Cluster UUID

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

2. 修改配置文件

编辑:

sudo nano config/kraft/server.properties

关键配置示例:

# Broker ID
node.id=1

# 集群 ID(上面生成的)
controller.quorum.voters=1@localhost:9093

# 监听地址
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092

# 日志目录
log.dirs=/opt/kafka/logs

# 控制器角色
process.roles=broker,controller
controller.listener.names=CONTROLLER
listeners=PLAINTEXT://:9092,CONTROLLER://:9093

如果你是多节点,需要修改 controller.quorum.voters


3. 格式化存储

bin/kafka-storage.sh format \
  -t $KAFKA_CLUSTER_ID \
  -c config/kraft/server.properties

4. 启动 Kafka

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

后台运行:

nohup bin/kafka-server-start.sh config/kraft/server.properties > kafka.log 2>&1 &

四、ZooKeeper 模式(老方式,不推荐)

如果你使用的是 Kafka 2.x

1. 启动 ZooKeeper

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

2. 启动 Kafka

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

五、基本配置说明(重要参数)

server.properties / kraft/server.properties

参数 说明
broker.id 每个 broker 唯一
listeners 监听协议和端口
log.dirs 数据目录
num.partitions 默认分区数
offsets.topic.replication.factor 推荐 ≥3
log.retention.hours 数据保留时间

六、创建 Topic 测试

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

八、Debian 下常见优化

1. 文件描述符限制

ulimit -n

建议 ≥ 100000

编辑:

sudo nano /etc/security/limits.conf
* soft nofile 100000
* hard nofile 100000

2. 禁用 swap(推荐)

sudo swapoff -a

九、设为 systemd 服务(生产环境)

我可以帮你写:

  • ✅ Kafka systemd 服务
  • ✅ 开机自启
  • ✅ 使用 KRaft 模式

如果你需要,请告诉我:

  1. Kafka 版本
  2. 是否多节点
  3. 是否外网访问

我可以给你 完整可直接用的 systemd 配置

0