温馨提示×

centos kafka怎样配集群

小樊
40
2026-10-14 20:25:29
栏目: 智能运维

下面以 CentOS 7/8 为例,讲清楚 Kafka 集群(多 broker) 的搭建步骤。假设你已经有 Java 和 Zookeeper(Kafka 2.8+ 也可不用 Zookeeper,这里以传统 Zookeeper 方式为例)。


一、环境准备

1. 服务器规划(示例)

假设 3 台 CentOS 服务器:

主机名 IP Kafka Broker ID
kafka1 192.168.1.11 1
kafka2 192.168.1.12 2
kafka3 192.168.1.13 3

Kafka 依赖 Zookeeper,建议 Zookeeper 也是 3 节点集群


二、安装 Kafka(每台机器)

1. 安装 JDK

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

2. 下载 Kafka

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

三、配置 Zookeeper(可选,若已有可跳过)

zookeeper.properties(3 台相同)

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:

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

四、配置 Kafka 集群(重点)

编辑 /opt/kafka/config/server.properties

kafka1

broker.id=1
listeners=PLAINTEXT://192.168.1.11:9092
advertised.listeners=PLAINTEXT://192.168.1.11:9092
log.dirs=/opt/kafka/logs
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181

kafka2

broker.id=2
listeners=PLAINTEXT://192.168.1.12:9092
advertised.listeners=PLAINTEXT://192.168.1.12:9092
log.dirs=/opt/kafka/logs
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181

kafka3

broker.id=3
listeners=PLAINTEXT://192.168.1.13:9092
advertised.listeners=PLAINTEXT://192.168.1.13:9092
log.dirs=/opt/kafka/logs
zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181

⚠️ 注意:

  • broker.id 必须唯一
  • listeners / advertised.listeners 必须用 IP 或 hostname

五、启动 Kafka

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 127.0.0.1:2181
ls /brokers/ids

应看到:

[1, 2, 3]

2. 创建 Topic(3 副本)

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

3. 查看 Topic

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

七、生产 / 消费测试

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

# 消费者(另一台)
kafka-console-consumer.sh --bootstrap-server 192.168.1.12:9092 --topic test-topic --from-beginning

八、常见问题

✅ 防火墙

firewall-cmd --add-port=9092/tcp --permanent
firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --reload

✅ 主机名解析(建议)

vi /etc/hosts
192.168.1.11 kafka1
192.168.1.12 kafka2
192.168.1.13 kafka3

如果你需要:

  • Kafka 3.x 无 Zookeeper(KRaft)
  • systemd 开机自启
  • Docker / K8s 部署

告诉我,我可以直接给你完整配置。

0 踩