美文网首页
【Kafka零基础学习】模拟线上broker宕机处理过程

【Kafka零基础学习】模拟线上broker宕机处理过程

作者: 文竹小二 | 来源:发表于2018-09-22 22:32 被阅读300次

    环境说明:

    1、1个zookeeper,3个kafka broker在同一主机。

    1、创建一个test topic(3分区、3副本)

    kafka-topics.bat --create --zookeeper localhost:2181/kafka --replication-factor 3 --partitions 3 --topic test


    image.png

    分区情况如下:
    kafka-topics.bat --describe --zookeeper localhost:2181/kafka --topic test


    image.png

    2、生产1个消息

    kafka-console-producer.bat --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test


    image.png

    3、broker0宕机和查看分区分配情况

    image.png

    broker0宕机后 ,分区leader会重新选举,整个集群仍处于可用状态。

    4、继续生产5个消息

    kafka-console-producer.bat --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test


    image.png

    5、broker0恢复和查看分区分配情况

    image.png

    可以看出,broker0恢复后,会重新加入到ISR中,但partition leader所在broker未发生改变,出现了partition leader分布不均匀情况。

    6、首选的副本选举

    由于目前leader分布不均匀,故运行首选的副本选举命令。
    kafka-preferred-replica-election.bat --zookeeper localhost:2181/kafka


    image.png

    会发现3个partition leader被重新分配回最初的broker上。这是因为Replicas数据一致未变过,此脚本默认会选举Replicas数据中的第一个为partition leader broker。

    相关文章

      网友评论

          本文标题:【Kafka零基础学习】模拟线上broker宕机处理过程

          本文链接:https://www.haomeiwen.com/subject/funxoftx.html