在Kafka中每个主题可以有多个分区,每个分区又可以有多个副本。在这多个副本中,只有一个副本的角色是Leader,而其他副本的角色都是Follower。仅有Leader副本所在的Kafka Broker可以对外提供服务。Follower副本通常不会存放在Leader副本所在的Kafka Broker上。通过这样的机制实现了高可用,当Leader副本所在的Kafka Broker宕机后,其他Follower副本所在的Kafka Broker就能够被选举成为新的Leader。
视频讲解如下:
下图为展示了Kafka分区的副本机制。
上图中创建一个主题,这个主题由两个分区组成P1和P2。从图中可以看出,每个分区的副本为3,即每个分区有三个副本。每个分区中都将由Leader副本所在的Kafka Broker负责对外提供服务。