温馨提示×

debian kafka集群如何搭

小樊
39
2026-09-12 19:01:56
栏目: 智能运维

下面给你一份**在 Debian 上搭建 Kafka 集群(以 3 节点为例)**的简明实战步骤,基于 Kafka 3.x + Kafka 自带 ZooKeeper(或 KRaft),适合生产/测试环境参考。


一、环境准备

1. 机器规划(示例)

主机名 IP 角色
kafka1 192.168.1.11 broker + zk
kafka2 192.168.1.12 broker + zk
kafka3 192.168.1.13 broker + zk

Kafka 2.8+ 支持 KRaft(无 ZooKeeper),但生产仍推荐 ZooKeeper 方案稳定


2. 系统基础配置(所有节点)

# 更新系统
apt update && apt upgrade -y

# 安装 Java(Kafka 需要 JDK 8/11/17)
apt install -y openjdk-11-jdk

java -version

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

1. 下载并解压

cd /opt
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
tar -xzf apache-zookeeper-3.7.1-bin.tar.gz
mv apache-zookeeper-3.7.1-bin zookeeper

2. 配置 ZooKeeper

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

编辑 conf/zoo.cfg

dataDir=/opt/zookeeper/data
clientPort=2181

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

创建 myid:

mkdir -p /opt/zookeeper/data
# kafka1
echo 1 > /opt/zookeeper/data/myid
# kafka2
echo 2 > /opt/zookeeper/data/myid
# kafka3
echo 3 > /opt/zookeeper/data/myid

3. 启动 ZooKeeper

/opt/zookeeper/bin/zkServer.sh start

查看状态:

/opt/zookeeper/bin/zkServer.sh status

三、安装 Kafka 集群

1. 下载 Kafka

cd /opt
wget https://archive.apache.org/dist/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 kafka

2. 配置 Kafka(每个节点不同)

编辑 config/server.properties

kafka1

broker.id=1
listeners=PLAINTEXT://192.168.1.11:9092
advertised.listeners=PLAINTEXT://192.168.1.11:9092
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181
log.dirs=/opt/kafka/logs
num.partitions=3
default.replication.factor=3
min.insync.replicas=2

kafka2

broker.id=2
listeners=PLAINTEXT://192.168.1.12:9092
advertised.listeners=PLAINTEXT://192.168.1.12:9092

kafka3

broker.id=3
listeners=PLAINTEXT://192.168.1.13:9092
advertised.listeners=PLAINTEXT://192.168.1.13:9092

3. 启动 Kafka

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

查看日志:

tail -f /opt/kafka/logs/server.log

四、验证 Kafka 集群

1. 创建 Topic

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

2. 查看 Topic

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

3. 生产 / 消费测试

# 生产者
kafka-console-producer.sh --topic test --bootstrap-server 192.168.1.11:9092

# 消费者
kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server 192.168.1.12:9092

五、可选:系统服务化(systemd)

[Unit]
Description=Kafka
After=network.target

[Service]
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

六、常见问题

  • broker 起不来:检查 listeners / advertised.listeners
  • ZK 连接失败:防火墙 / myid 错误
  • 副本不足replication.factor > broker 数

如果你愿意,我可以:

  • 给你 KRaft 模式(无 ZK)
  • 给你 Docker / k8s 部署
  • 或按你 Debian 版本 + Kafka 版本 精确定制

你现在是 测试环境还是生产环境?

0