温馨提示×

Kafka集群Debian怎么搭

小樊
47
2026-07-11 16:48:44
栏目: 智能运维

下面给你一个**在 Debian 系统上搭建 Kafka 集群(多节点)**的完整实战流程,基于 Kafka 3.x + Zookeeper(或 KRaft),适合生产环境理解。


一、环境准备

1️⃣ 机器规划(示例)

节点 IP 角色
node1 192.168.1.10 Kafka + Zookeeper
node2 192.168.1.11 Kafka + Zookeeper
node3 192.168.1.12 Kafka + Zookeeper

✅ 建议 3 台及以上奇数节点


2️⃣ 系统要求

# 查看 Debian 版本
cat /etc/debian_version

推荐:

  • Debian 10 / 11 / 12
  • Java 8 / 11 / 17(Kafka 3.x 推荐 Java 11)

二、安装 Java

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

验证:

java -version

三、创建 Kafka 用户(可选但推荐)

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

四、下载并安装 Kafka

所有节点 执行:

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

五、Zookeeper 集群搭建(传统模式)

⚠️ Kafka 3.x 后可用 KRaft,但 Zookeeper 依然稳定

1️⃣ 配置 Zookeeper(所有节点)

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

示例(每个节点相同):

tickTime=2000
dataDir=/opt/kafka/zookeeper-data
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

2️⃣ 设置 myid(每个节点不同)

sudo mkdir -p /opt/kafka/zookeeper-data

node1

echo 1 | sudo tee /opt/kafka/zookeeper-data/myid

node2

echo 2 | sudo tee /opt/kafka/zookeeper-data/myid

node3

echo 3 | sudo tee /opt/kafka/zookeeper-data/myid

3️⃣ 启动 Zookeeper

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

检查:

echo ruok | nc localhost 2181
# 返回 imok

六、Kafka 集群配置

1️⃣ 配置 server.properties(每个节点)

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

公共配置

broker.id=1   # 每个节点不同(1/2/3)
listeners=PLAINTEXT://192.168.1.10:9092
log.dirs=/opt/kafka/kafka-logs
zookeeper.connect=192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181
num.partitions=3
offsets.topic.replication.factor=3
default.replication.factor=3

⚠️ 注意:

  • broker.id 每个节点唯一
  • listeners本机 IP

2️⃣ 启动 Kafka

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

七、验证 Kafka 集群

1️⃣ 查看 broker

/opt/kafka/bin/zookeeper-shell.sh localhost:2181 ls /brokers/ids

2️⃣ 创建 topic

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

3️⃣ 查看 topic

/opt/kafka/bin/kafka-topics.sh \
--describe \
--topic test-topic \
--bootstrap-server 192.168.1.10:9092

八、生产 / 消费测试

生产者

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

消费者

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

九、KRaft 模式(无 Zookeeper,可选)

如果你想要 Kafka 3.x 新架构(推荐新项目),我可以单独给你:

✅ KRaft 单节点
✅ KRaft 集群
✅ 与 Zookeeper 对比


十、常见问题

❌ 9092 端口不通

ss -lntp | grep 9092

❌ broker.id 冲突

meta.properties

❌ 磁盘满

log.retention.hours=168
log.segment.bytes

如果你愿意,我可以:

  • ✅ 给你 systemd 服务文件
  • ✅ 内网 + 公网监听配置
  • ✅ 生产级参数调优
  • ✅ Docker / Ansible 部署方案

直接告诉我你 Debian 版本 + Kafka 版本 + 是否用 Zookeeper 即可。

0