下面给你一份**CentOS 上 Kafka 集群(以 3 台为例)**的实用配置教程,基于 Kafka 3.x + ZooKeeper(最常见、最稳的方案)。如果你用的是 Kafka 3.3+ 且想用 KRaft(无 ZooKeeper),我也可以单独给你。
假设 3 台机器:
| 主机名 | IP |
|---|---|
| kafka1 | 192.168.1.11 |
| kafka2 | 192.168.1.12 |
| kafka3 | 192.168.1.13 |
# 每台都执行
hostnamectl set-hostname kafka1 # 对应修改
/etc/hosts
192.168.1.11 kafka1
192.168.1.12 kafka2
192.168.1.13 kafka3
yum install -y java-1.8.0-openjdk
java -version
systemctl stop firewalld
systemctl disable firewalld
Kafka 依赖 ZooKeeper 做元数据管理
cd /opt
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.1-bin.tar.gz
mv apache-zookeeper-3.8.1-bin zookeeper
cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
server.1=kafka1:2888:3888
server.2=kafka2:2888:3888
server.3=kafka3:2888:3888
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
/opt/zookeeper/bin/zkServer.sh start
cd /opt
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -zxvf kafka_2.13-3.6.1.tgz
mv kafka_2.13-3.6.1 kafka
/opt/kafka/config/server.properties
kafka1
broker.id=1
listeners=PLAINTEXT://kafka1:9092
advertised.listeners=PLAINTEXT://kafka1:9092
log.dirs=/opt/kafka/logs
zookeeper.connect=kafka1:2181,kafka2:2181,kafka3:2181
num.partitions=3
default.replication.factor=3
min.insync.replicas=2
kafka2
broker.id=2
listeners=PLAINTEXT://kafka2:9092
advertised.listeners=PLAINTEXT://kafka2:9092
kafka3
broker.id=3
listeners=PLAINTEXT://kafka3:9092
advertised.listeners=PLAINTEXT://kafka3:9092
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
查看进程:
jps
# Kafka
# QuorumPeerMain
kafka-topics.sh --create \
--bootstrap-server kafka1:9092 \
--replication-factor 3 \
--partitions 3 \
--topic test
kafka-topics.sh --describe --topic test --bootstrap-server kafka1:9092
# 生产
kafka-console-producer.sh --topic test --bootstrap-server kafka1:9092
# 消费
kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server kafka1:9092
# 查看 broker 列表
zookeeper-shell.sh kafka1:2181 ls /brokers/ids
# 停止 Kafka
kafka-server-stop.sh
log.retention.hours=168num.network.threads=8num.io.threads=16如果你需要:
告诉我你的 Kafka 版本和使用场景即可。