articleList

23-Kafka高可用集群之zookeeper集群搭建

2025/03/13 posted in  Kafka
Tags: 

没那么多机器,采用伪集群方式搭建(端口号区分)

  • 节点需求规划

    • zookeeper部署3个节点
      • 2181
      • 2181
      • 2181
    • kafka部署3个节点
      • 9092
      • 9093
      • 9094
  • 网络安全组记得开放端口

  • 部署zookeeper

    • 解压缩并重命名为zk1
    • 复制一份配置文件:cp conf/zoo_sample.cfg zoo.cfg
    • 修改配置zoo.cfg
      39317311.png
    • cp -r 复制zk1节点(zk1、zk2、zk3)
    • 修改zk2和zk3的配置zoo.cfg
    • 创建目录 /tmp/zookeeper/2181、/tmp/zookeeper/2182、/tmp/zookeeper/2183
    • dataDir对应目录下分别创建myid文件,内容对应1、2、3
    cd /tmp/zookeeper/2181
    echo 1 > myid
    
    cd /tmp/zookeeper/2182
    echo 2 > myid
    
    cd /tmp/zookeeper/2183
    echo 3 > myid
    
    • 配置集群

      • 修改配置zoo.cfg
      # server.服务器id=服务器IP地址:服务器直接通信端口:服务器之间选举投票端口
      server.1=127.0.0.1:2881:3881
      server.2=127.0.0.1:2882:3882
      server.3=127.0.0.1:2883:3883
      
    • 启动集群

    cd zk1/bin
    ./zkServer.sh start
    
    cd ../../zk2/bin
    ./zkServer.sh start
    
    cd ../../zk3/bin
    ./zkServer.sh start
    
    • 查看节点状态
      ./zkServer.sh status
    • 停止节点
      ./zkServer.sh stop
  • 部署Kafka

    • 解压缩、重命名
    • 修改配置:vim config/server.properties
    ##每个节点编号1、2、3
    broker.id=1
    
    #内网中使用,内网部署 kafka 集群只需要用到 listeners,内外网需要作区分时才需要用到advertised.listeners
    listeners=PLAINTEXT://172.25.71.200:9092
    advertised.listeners=PLAINTEXT://121.40.146.120:9092
    
    #配置3个,1、2、3
    log.dirs=/tmp/kafka-logs/1
    
    #修改zk地址
    zookeeper.connection=localhost:2181,localhost:2182,localhost:2183
    
    • 启动Kafka
    ./kafka-server-start.sh -daemon ../config/server.properties &
    ./kafka-server-start.sh ../config/server.properties &
    
    • 创建topic
    ./kafka-topics.sh --create --zookeeper 172.25.71.200:2181,172.25.71.200:2182,172.25.71.200:2183 --replication-factor 3 --partitions 6 --topic xdclass-cluster-topic