下面以 Debian 11/12 为例,介绍如何配置 Kafka 集群(3 节点示例)。假设你已经具备 Linux 基础和 Java 环境。
| 主机名 | 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 模式。
Kafka 依赖 Java:
sudo apt update
sudo apt install -y openjdk-17-jdk
java -version
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
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
每个节点不同:
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
/opt/zookeeper/bin/zkServer.sh start
查看状态:
/opt/zookeeper/bin/zkServer.sh status
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
编辑 /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
sudo mkdir -p /var/lib/kafka-logs
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
检查:
jps
应看到:
Kafka
QuorumPeerMain
/opt/kafka/bin/kafka-topics.sh \
--create \
--topic test-topic \
--bootstrap-server 192.168.1.11:9092 \
--partitions 3 \
--replication-factor 3
/opt/kafka/bin/kafka-topics.sh \
--describe \
--topic test-topic \
--bootstrap-server 192.168.1.11:9092
应看到 3 个副本,分布在 3 个 broker。
生产者
/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
可创建 kafka.service 和 zookeeper.service,避免手动启动。
sudo ufw allow 2181
sudo ufw allow 2888
sudo ufw allow 3888
sudo ufw allow 9092
如果你需要 Kafka 3.x + KRaft,我可以单独给你一份 Debian + KRaft 集群配置方案。
如果你愿意,我可以继续帮你:
你可以直接告诉我你的 Kafka 版本和使用场景。