温馨提示×

linux kafka怎样集群

小樊
35
2026-09-14 11:05:26
栏目: 智能运维

下面按最常见、最稳妥的方式给你讲 Linux 下 Kafka 集群搭建(以 Kafka 3.x + Kafka 自带 Zookeeper 为例,生产环境也可用 KRaft,但先讲经典方案)。


一、集群规划(示例)

假设 3 台 Linux 服务器:

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

Kafka 版本示例:
kafka_2.13-3.6.0.tgz


二、基础准备(每台机器)

1. 安装 JDK

java -version

没有就装:

yum install -y java-11-openjdk
# 或
apt install -y openjdk-11-jdk

2. 下载并解压 Kafka

cd /opt
wget https://archive.apache.org/dist/kafka/3.6.0/kafka_2.13-3.6.0.tgz
tar -xzf kafka_2.13-3.6.0.tgz
ln -s /opt/kafka_2.13-3.6.0 /opt/kafka

3. 配置 hosts(可选但推荐)

vi /etc/hosts
192.168.1.11 kafka1
192.168.1.12 kafka2
192.168.1.13 kafka3

三、Zookeeper 集群配置(3 台)

编辑:

vi /opt/kafka/config/zookeeper.properties

公共配置

dataDir=/opt/kafka/zookeeper
clientPort=2181
maxClientCnxns=0

集群节点

server.1=kafka1:2888:3888
server.2=kafka2:2888:3888
server.3=kafka3:2888:3888

创建 myid(每台不同)

# kafka1
echo 1 > /opt/kafka/zookeeper/myid

# kafka2
echo 2 > /opt/kafka/zookeeper/myid

# kafka3
echo 3 > /opt/kafka/zookeeper/myid

四、Kafka Broker 配置(每台)

编辑:

vi /opt/kafka/config/server.properties

1. 基础配置(每台不同)

broker.id=1        # kafka2=2, kafka3=3
listeners=PLAINTEXT://kafka1:9092
advertised.listeners=PLAINTEXT://kafka1:9092

2. Zookeeper 配置(三台一样)

zookeeper.connect=kafka1:2181,kafka2:2181,kafka3:2181

3. 日志目录

log.dirs=/opt/kafka/kafka-logs
num.partitions=3
default.replication.factor=3
min.insync.replicas=2

五、启动集群

1. 启动 Zookeeper(三台)

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

2. 启动 Kafka(三台)

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

六、验证集群

1. 查看 broker

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

2. 创建 Topic

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

3. 查看 Topic

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

七、生产环境建议

✅ 使用 KRaft 模式(Kafka 3.3+ 推荐,不再依赖 Zookeeper)
✅ 使用 systemd 管理服务
✅ 打开防火墙端口:

  • 2181(zk)
  • 9092(kafka)

✅ 配置:

  • log.retention.hours
  • auto.create.topics.enable=false

八、如果你愿意

我可以帮你:

  • ✅ 写 systemd 启动脚本
  • ✅ 教你 KRaft 集群(无 Zookeeper)
  • ✅ 给你 docker-compose Kafka 集群
  • ✅ 按 生产级参数调优

你现在是 学习 / 测试 / 生产 用?

0