Kafka 中的 Partition 是有序消息日志,为了实现高可用性,需要采用备份机制,将相同的数据复制到多个 Broker 上,而这些备份日志就是 Replica,目的是为了  防止数据丢失

所有 Partition 的副本默认情况下都会均匀地分布到所有 Broker 上,一旦领导者副本所在的 Broker 宕机,Kafka 会从追随者副本中选举出新的领导者继续提供服务。

Replica(副本)

  • 定义Replica  是指一个分区在多个 Broker 上的复制版本。每个分区可以有一个或多个副本,以增加系统的容错能力和数据的持久性。
  • 作用:通过多个副本,Kafka 可以保证即使某个 Broker 失效,数据仍然可以被访问和处理。此外,副本还可以用于负载均衡,提高系统的读取性能。

Leader(领导者)

  • 定义Leader  是一个分区的主副本,在所有副本中,只有 Leader 才能接收客户端的读写请求。
  • 作用:Leader 负责处理来自客户端的所有读写操作,并且负责将写入的数据复制到其他的副本(Follower)。Leader 还负责维护分区的日志状态,如  High Watermark(HW)和  Log End Offset(LEO)。

Follower(跟随者)

  • 定义Follower  是除 Leader 以外的其他副本。Follower 会从 Leader 中异步复制数据。
  • 作用:Follower 的主要任务是从 Leader 中拉取数据,并保持与 Leader 的数据一致。Follower 不直接处理客户端请求,但在 Leader 失效时,其中一个 Follower 可以被提升为新的 Leader。