温馨提示×

centos Kafka集群怎么配

小樊
41
2026-10-11 22:05:17
栏目: 智能运维

下面给你一份**CentOS 上 Kafka 集群(以 3 台为例)**的实用配置教程,基于 Kafka 3.x + ZooKeeper(最常见、最稳的方案)。如果你用的是 Kafka 3.3+ 且想用 KRaft(无 ZooKeeper),我也可以单独给你。


一、环境准备(3 台 CentOS)

假设 3 台机器:

主机名 IP
kafka1 192.168.1.11
kafka2 192.168.1.12
kafka3 192.168.1.13

1. 基础环境

# 每台都执行
hostnamectl set-hostname kafka1   # 对应修改

/etc/hosts

192.168.1.11 kafka1
192.168.1.12 kafka2
192.168.1.13 kafka3

2. 安装 JDK

yum install -y java-1.8.0-openjdk
java -version

3. 关闭防火墙(测试环境)

systemctl stop firewalld
systemctl disable firewalld

二、ZooKeeper 集群配置

Kafka 依赖 ZooKeeper 做元数据管理

1. 下载并解压

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

2. 配置 zoo.cfg

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

3. 创建 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

4. 启动

/opt/zookeeper/bin/zkServer.sh start

三、Kafka 集群配置

1. 下载 Kafka

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

2. 修改 server.properties

/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

四、启动 Kafka

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

查看进程:

jps
# Kafka
# QuorumPeerMain

五、测试 Kafka 集群

1. 创建 Topic

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

2. 查看 Topic

kafka-topics.sh --describe --topic test --bootstrap-server kafka1:9092

3. 生产 / 消费

# 生产
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=168
  • num.network.threads=8
  • num.io.threads=16
  • 使用 SASL/SSL 做安全
  • 使用 systemd 管理 Kafka/ZK

如果你需要:

  • ✅ KRaft 模式(无 ZooKeeper)
  • ✅ systemd 服务文件
  • ✅ 生产级安全配置(SASL+ACL)

告诉我你的 Kafka 版本和使用场景即可。

0 踩