温馨提示×

Kafka在Debian能配集群吗

小樊
32
2026-08-22 06:41:33
栏目: 智能运维

可以的,Kafka 完全可以在 Debian 上部署集群。Kafka 本身是跨平台的,只要系统满足依赖(主要是 Java)就可以运行。下面给你一个在 Debian 上配置 Kafka 集群的实用思路和关键点


一、环境要求

1. 系统

  • Debian 10 / 11 / 12 均可
  • 建议使用 Debian 11(Bullseye)或 12(Bookworm)

2. Java

Kafka 依赖 JVM:

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

验证:

java -version

Kafka 3.x 推荐 Java 11 或 17
Kafka 2.x 推荐 Java 8 / 11


二、集群架构说明(最简 3 台)

节点 角色
broker1 Kafka Broker
broker2 Kafka Broker
broker3 Kafka Broker
zoo1 / kafka2 / kraft 协调服务

Kafka 新版本(≥ 2.8)支持 KRaft 模式(无 ZooKeeper)
老版本需要 ZooKeeper 集群


三、方式一:Kafka + ZooKeeper 集群(经典)

1. 下载 Kafka

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

2. 配置 ZooKeeper 集群(三台机器)

/opt/kafka/config/zookeeper.properties

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2

server.1=192.168.1.10:2888:3888
server.2=192.168.1.11:2888:3888
server.3=192.168.1.12:2888:3888

每台机器创建 myid

# broker1
echo 1 > /var/lib/zookeeper/myid

# broker2
echo 2 > /var/lib/zookeeper/myid

# broker3
echo 3 > /var/lib/zookeeper/myid

3. 配置 Kafka Broker 集群

/opt/kafka/config/server.properties

broker1

broker.id=1
listeners=PLAINTEXT://192.168.1.10:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181

broker2

broker.id=2
listeners=PLAINTEXT://192.168.1.11:9092

broker3

broker.id=3
listeners=PLAINTEXT://192.168.1.12:9092

4. 启动集群

# 启动 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

四、方式二:Kafka KRaft 模式(无 ZooKeeper,推荐)

Kafka 3.x 开始推荐

1. 生成集群 ID

/opt/kafka/bin/kafka-storage.sh random-uuid

例如:

xtz1234567890

2. 配置 kraft/server.properties

process.roles=broker,controller
node.id=1
controller.quorum.voters=1@192.168.1.10:9093,2@192.168.1.11:9093,3@192.168.1.12:9093

listeners=PLAINTEXT://192.168.1.10:9092,CONTROLLER://192.168.1.10:9093
log.dirs=/var/lib/kafka-logs

每台机器 node.id 不同。


3. 格式化存储

/opt/kafka/bin/kafka-storage.sh format -t xtz1234567890 -c /opt/kafka/config/kraft/server.properties

4. 启动

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

五、验证集群是否成功

/opt/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server 192.168.1.10:9092

或创建 topic:

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

六、Debian 上的注意事项

✅ 防火墙放行端口:

9092  # Kafka
2181  # ZooKeeper
9093  # KRaft Controller

✅ 时间同步(非常重要):

sudo apt install ntp -y

✅ 生产环境建议:

  • 使用 systemd
  • 关闭 swap
  • 使用 SSD
  • JVM 参数调优

七、总结

Debian 完全可以部署 Kafka 集群
✅ 推荐 Debian 11/12 + Kafka 3.x + KRaft
✅ 小规模测试 3 节点即可
✅ 生产环境建议 JVM / 磁盘 / 网络优化


如果你愿意,我可以:

  • ✅ 给你 完整 systemd 服务文件
  • ✅ 给你 生产级 Kafka 参数配置
  • ✅ 指导 Debian + Docker / K8s 部署

你现在用的是 单机测试还是多台 Debian 服务器

0