kafka副本

主题可划分成若干个分,每个分区配置有若干个副本。副本(Replica),本质是一个只能追加写消息的提交日志

副本分类

副本分成两类:领导者副本(Leader Replica)和追随者副本(Follower Replica)。每个分区在创建时都要选举一个副本,称为领导者副本,其余的副本自动称为追随者副本。

  • 所有的读写请求都必须发往领导者副本所在的 Broker,由该 Broker 负责处理。

  • 追随者副本是不对外提供服务的。从领导者副本异步拉取消息,并写入到自己的提交日志中,从而实现与领导者副本的同步。

  • 领导者副本所在的 Broker 宕机时,Kafka 依托于 ZooKeeper 提供的监控功能能够实时感知到,并立即开启新一轮的领导者选举,从追随者副本中选一个作为新的领导者。

优势

1.方便实现“Read-your-writes”:

2.方便实现单调读(Monotonic Reads):在多次消费消息时,它不会看到某条消息一会儿存在一会儿不存在。

In-sync Replicas(ISR)

与 Leader 同步的副本,包括 Leader 副本。

标准就是 Broker 端参数 replica.lag.time.max.ms 参数值。这个参数的含义是 Follower 副本能够落后 Leader 副本的最长时间间隔。

Unclean 领导者选举

非同步副本落后 Leader 太多,并选择这些副本作为新 Leader。

Broker 端参数 unclean.leader.election.enable 控制是否允许 Unclean 领导者选举。

posted on 2021-04-02 21:58  hainingwyx  阅读(73)  评论(0编辑  收藏  举报

导航