zoukankan      html  css  js  c++  java
  • kafka集群部署和测试

    创建一个三个broker的集群

    修改副本默认值,KAFKA_DEFAULT_REPLICATION_FACTOR=3,默认是1,没有副本。设置为和broker数量一样

    docker run -d --name kafka01 -p 9092:9092 -p 9999:9999 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.18.5:2181 -e KAFKA_ADVERTISED_HOST_NAME=192.168.18.5 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.18.5:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e JMX_PORT=9999 -e KAFKA_DEFAULT_REPLICATION_FACTOR=3 -e KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.18.5 -Dcom.sun.management.jmxremote.rmi.port=9999"  wurstmeister/kafka:0.11.0.0
    
    docker run -d --name kafka02 -p 9092:9092 -p 9999:9999 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=192.168.18.5:2181 -e KAFKA_ADVERTISED_HOST_NAME=192.168.18.249 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.18.249:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e JMX_PORT=9999 -e KAFKA_DEFAULT_REPLICATION_FACTOR=3 -e KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.18.249 -Dcom.sun.management.jmxremote.rmi.port=9999"  wurstmeister/kafka:0.11.0.0
    
    docker run -d --name kafka02 -p 9092:9092 -p 9999:9999 -e KAFKA_BROKER_ID=3 -e KAFKA_ZOOKEEPER_CONNECT=192.168.18.5:2181 -e KAFKA_ADVERTISED_HOST_NAME=192.168.21.166 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.21.166:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e JMX_PORT=9999 -e KAFKA_DEFAULT_REPLICATION_FACTOR=3 -e KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.21.166 -Dcom.sun.management.jmxremote.rmi.port=9999"  wurstmeister/kafka:0.11.0.0
    

      

    概念理解

    复制系数 replication.factor

      topic的复制系数=3,就是每个分区会被3个不同的broker复制3次。数据容量就是3倍,可以容忍2个broker宕机或进入维护状态。官方推荐至少3个brokers。

    分区副本的leader和follower

      分区副本中,有一个副本会被选举为leader,leader负责处理producer 和 consume的请求,而副本机器只负责sync leader收到的消息。

      leader所在broker宕机,则有一个follower会被选举为leader。

    创建带副本的topic

    手动创建一个topic,复制系数设为3,分区为2,就是每个broker上一个副本。

    查看可见,副本=3,brokers总数=3,brokers for topic = 3,就是每个broker上一个副本。

    这个topic是2分区,可见,每个broker上都有2分区。

    分区信息,可见,分区0的leader副本在broker1上,分区1的副本在broker3上。

     

    故障测试:broker挂掉

    现在杀掉broker1,可见,分区0的leader副本到了broker2上,在同步中的副本信息中,没有了broker1。

    同时生产和消费正常。

     重启broker1,broker1又回来了。

     查看broker的信息,broker1上拥有大量的数据rw

     

  • 相关阅读:
    day14
    day13
    装饰器小题
    day12
    tes..
    1380 没有上司的舞会
    算法模板——KMP字符串匹配
    算法模板——Tarjan强连通分量
    3211: 花神游历各国
    1131: [POI2008]Sta
  • 原文地址:https://www.cnblogs.com/jabbok/p/12966342.html
Copyright © 2011-2022 走看看