温馨提示×

Debian怎么配置Kafka集群

小樊
43
2026-07-23 16:12:50
栏目: 智能运维

下面以 Debian 11/12 为例,介绍如何配置 Kafka 集群(3 节点示例)。假设你已经具备 Linux 基础和 Java 环境。


一、环境准备

1. 主机规划(示例)

主机名 IP 角色
kafka1 192.168.1.11 Kafka + Zookeeper
kafka2 192.168.1.12 Kafka + Zookeeper
kafka3 192.168.1.13 Kafka + Zookeeper

Kafka 新版本已支持 KRaft 模式(无 Zookeeper),但生产环境仍大量使用 Zookeeper,这里先讲 Zookeeper 模式。


2. 安装 Java

Kafka 依赖 Java:

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

二、安装 Zookeeper 集群(3 节点)

1. 下载 Zookeeper

cd /opt
sudo wget https://downloads.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
sudo tar -xzf apache-zookeeper-3.8.4-bin.tar.gz
sudo mv apache-zookeeper-3.8.4-bin /opt/zookeeper

2. 配置 Zookeeper

cd /opt/zookeeper/conf
sudo cp zoo_sample.cfg zoo.cfg

编辑 zoo.cfg

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

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

3. 创建 myid

每个节点不同:

sudo mkdir -p /var/lib/zookeeper

kafka1

echo 1 | sudo tee /var/lib/zookeeper/myid

kafka2

echo 2 | sudo tee /var/lib/zookeeper/myid

kafka3

echo 3 | sudo tee /var/lib/zookeeper/myid

4. 启动 Zookeeper

/opt/zookeeper/bin/zkServer.sh start

查看状态:

/opt/zookeeper/bin/zkServer.sh status

三、安装 Kafka 集群

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 /opt/kafka

2. 配置 Kafka(每个节点)

编辑 /opt/kafka/config/server.properties

通用配置

broker.id=1        # 每个节点不同(1/2/3)
log.dirs=/var/lib/kafka-logs
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181

监听配置(重要)

listeners=PLAINTEXT://192.168.1.11:9092
advertised.listeners=PLAINTEXT://192.168.1.11:9092

每个节点改成自己的 IP


3. 创建数据目录

sudo mkdir -p /var/lib/kafka-logs

4. 启动 Kafka

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

检查:

jps

应看到:

Kafka
QuorumPeerMain

四、验证 Kafka 集群

1. 创建 Topic

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

2. 查看 Topic

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

应看到 3 个副本,分布在 3 个 broker。


3. 生产 / 消费测试

生产者

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

消费者

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

五、可选优化(生产建议)

1. systemd 管理

可创建 kafka.servicezookeeper.service,避免手动启动。

2. 防火墙

sudo ufw allow 2181
sudo ufw allow 2888
sudo ufw allow 3888
sudo ufw allow 9092

六、KRaft 模式(无 Zookeeper,简要)

如果你需要 Kafka 3.x + KRaft,我可以单独给你一份 Debian + KRaft 集群配置方案


七、常见问题

  • broker.id 冲突 → 集群无法启动
  • listeners 和 advertised.listeners 不一致 → 客户端连不上
  • Zookeeper 未启动 → Kafka 起不来

如果你愿意,我可以继续帮你:

  • ✅ 写 systemd 服务文件
  • ✅ 配置 KRaft 模式
  • ✅ 配置 Kafka 安全(SASL/SSL)
  • ✅ 用 Ansible 自动化部署

你可以直接告诉我你的 Kafka 版本和使用场景。

0