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

环境说明:

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宕机处理过程)