温馨提示×

CentOS Kafka 集群搭建指南

小樊
41
2025-11-27 21:52:11
栏目: 智能运维

CentOS Kafka 集群搭建指南

一 环境准备与规划

  • 准备至少3台CentOS 7/8 服务器(虚拟机或物理机均可),示例规划如下:
    节点 内网IP 主机名
    broker-1 192.168.2.83 kafkaserver1
    broker-2 192.168.2.84 kafkaserver2
    broker-3 192.168.2.86 kafkaserver3
  • 安装 Java 8+(推荐 OpenJDK 8 或 11),并配置环境变量(示例:JAVA_HOME、PATH)。
  • 下载并解压 Apache Kafka(示例版本:kafka_2.13-3.4.0.tgz),建议统一安装路径(如:/opt/kafka)。
  • 开放防火墙端口:Kafka 默认 9092,ZooKeeper 默认 2181(如使用 ZK 模式)。

二 部署模式选择与准备

  • Kafka 支持两种元数据管理模式:
    • ZooKeeper 模式:传统方式,Kafka 依赖外部或内置 ZooKeeper 管理元数据。
    • KRaft 模式:自 Kafka 3.x 起可用,去除对 ZooKeeper 的依赖,部署与运维更简单。
  • 注意:两种模式不能同时使用,请选择其一并保持一致。

三 使用 ZooKeeper 模式部署

  • 启动 ZooKeeper(内置或外部 ZooKeeper 均可):
    • 内置示例:
      • 启动 ZooKeeper:bin/zookeeper-server-start.sh config/zookeeper.properties
      • 启动 Broker:bin/kafka-server-start.sh config/server.properties
  • 配置每个 Broker 的 server.properties(三台节点分别配置):
    • broker.id:每台唯一(如:1、2、3
    • listeners:建议绑定主机名或内网IP(如:PLAINTEXT://kafkaserver1:9092
    • log.dirs:数据目录(如:/var/lib/kafka/logs-1
    • zookeeper.connect:ZooKeeper 地址(如:kafkaserver1:2181,kafkaserver2:2181,kafkaserver3:2181
  • 创建测试主题并验证:
    • 创建主题(复制因子建议与 Broker 数一致,示例为 3):
      • bin/kafka-topics.sh --create --topic kafka-test --bootstrap-server kafkaserver1:9092 --partitions 3 --replication-factor 3
    • 查看主题详情:
      • bin/kafka-topics.sh --describe --topic kafka-test --bootstrap-server kafkaserver1:9092
    • 生产/消费测试:
      • 生产:bin/kafka-console-producer.sh --topic kafka-test --bootstrap-server kafkaserver1:9092
      • 消费:bin/kafka-console-consumer.sh --topic kafka-test --from-beginning --bootstrap-server kafkaserver1:9092

四 使用 KRaft 模式部署(推荐)

  • 生成集群 ID(任一节点执行一次即可):
    • KAFKA_CLUSTER_ID=“$(bin/kafka-storage.sh random-uuid)”
  • 格式化日志目录(每个节点执行,使用同一 Cluster ID):
    • bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties
  • 启动 Kafka(每个节点):
    • bin/kafka-server-start.sh config/kraft/server.properties
  • 创建测试主题并验证(与 ZK 模式相同):
    • 创建主题:bin/kafka-topics.sh --create --topic kafka-test --bootstrap-server kafkaserver1:9092 --partitions 3 --replication-factor 3
    • 生产与消费测试:同上

五 常用运维与安全加固

  • 常用运维
    • 后台启动:nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &
    • 优雅停止:bin/kafka-server-stop.sh
    • 查看进程:jps(应能看到 Kafka 进程)
    • 验证监听:ss -lntp | grep 9092 或 netstat -anp | grep 9092
  • 安全加固(可选)
    • 启用 SASL/PLAIN 认证:在 server.properties 中配置 listeners 为 SASL_PLAINTEXT,并在启动脚本中注入 JAAS 配置(KAFKA_OPTS),创建 JAAS 文件定义用户与口令,生产/消费脚本需配置对应安全参数。
    • 防火墙与网络:仅开放必要端口(如 9092/2181),限制来源网段,避免暴露在公网。

0