linux

怎样在Linux上配置Kafka的高可用性

小樊
39
2025-08-28 08:28:54
栏目: 智能运维

在Linux上配置Kafka高可用性需部署Kafka集群和Zookeeper集群,核心步骤如下:

  1. 环境准备

    • 安装Java(推荐OpenJDK 8+):sudo apt install openjdk-8-jdk(Ubuntu)或 sudo yum install java-1.8.0-openjdk(CentOS)。
    • 确保服务器间网络互通,关闭防火墙或开放必要端口(9092、2181等)。
  2. 部署Zookeeper集群(Kafka依赖其协调节点)

    • 下载并解压Zookeeper:wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz,解压后进入配置目录。
    • 编辑zoo.cfg:设置dataDir(数据目录)、clientPort(客户端端口,默认2181),并配置集群节点(server.1=node1:2888:3888等,需为每个节点指定唯一ID和端口)。
    • 在每个节点的dataDir下创建myid文件,写入节点ID(如节点1写1,节点2写2)。
    • 启动Zookeeper:bin/zookeeper-server-start.sh config/zoo.cfg
  3. 部署Kafka集群

    • 下载并解压Kafka:wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz,解压后进入配置目录。
    • 编辑server.properties
      • broker.id:为每个节点设置唯一ID(与Zookeeper的myid对应)。
      • zookeeper.connect:指向所有Zookeeper节点(如zoo1:2181,zoo2:2181,zoo3:2181)。
      • 高可用关键参数:default.replication.factor=3(副本数,建议≥3)、min.insync.replicas=2(最小同步副本数)。
      • 监听地址:listeners=PLAINTEXT://<节点IP>:9092advertised.listeners设置为外部可访问地址。
    • 创建日志目录:mkdir -p /var/lib/kafka-logs,并授权用户(如kafka:kafka)。
    • 启动Kafka:bin/kafka-server-start.sh config/server.properties
  4. 验证高可用性

    • 创建Topic时指定副本数:bin/kafka-topics.sh --create --topic test --replication-factor 3 --partitions 3 --bootstrap-server <任意节点IP>:9092
    • 测试故障转移:停止某个Kafka节点,观察Topic分区是否自动重新分配Leader,生产者和消费者是否正常工作。
  5. 监控与维护

    • 使用Kafka自带工具监控集群状态:kafka-topics.sh --describe查看Topic分布,kafka-replica-verification.sh监控副本同步延迟。
    • 配置第三方监控工具(如Prometheus+Grafana)监控JMX指标(如ISR收缩、请求延迟等)。

关键注意事项

参考来源:

0
看了该问题的人还看了