可以的,Kafka 完全可以在 Debian 上部署集群。Kafka 本身是跨平台的,只要系统满足依赖(主要是 Java)就可以运行。下面给你一个在 Debian 上配置 Kafka 集群的实用思路和关键点。
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
| 节点 | 角色 |
|---|---|
| broker1 | Kafka Broker |
| broker2 | Kafka Broker |
| broker3 | Kafka Broker |
| zoo1 / kafka2 / kraft | 协调服务 |
Kafka 新版本(≥ 2.8)支持 KRaft 模式(无 ZooKeeper)
老版本需要 ZooKeeper 集群
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
/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
/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
# 启动 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 3.x 开始推荐
/opt/kafka/bin/kafka-storage.sh random-uuid
例如:
xtz1234567890
kraft/server.propertiesprocess.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 不同。
/opt/kafka/bin/kafka-storage.sh format -t xtz1234567890 -c /opt/kafka/config/kraft/server.properties
/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
✅ 防火墙放行端口:
9092 # Kafka
2181 # ZooKeeper
9093 # KRaft Controller
✅ 时间同步(非常重要):
sudo apt install ntp -y
✅ 生产环境建议:
✅ Debian 完全可以部署 Kafka 集群
✅ 推荐 Debian 11/12 + Kafka 3.x + KRaft
✅ 小规模测试 3 节点即可
✅ 生产环境建议 JVM / 磁盘 / 网络优化
如果你愿意,我可以:
你现在用的是 单机测试还是多台 Debian 服务器?