|NO.Z.00050|——————————|BigDataEnd|——|Hadoop&kafka.V35|——|kafka.v35|副本机制|

一、副本机制

### --- Kafka在一定数量的服务器上对主题分区进行复制。

~~~     # 当集群中的一个broker宕机后系统可以自动故障转移到其他可用的副本上,不会造成数据丢失。
~~~     # --replication-factor 3 1leader+2follower
~~~     将复制因子为1的未复制主题称为复制主题。
~~~     主题的分区是复制的最小单元。
~~~     在非故障情况下,Kafka中的每个分区都有一个Leader副本和零个或多个Follower副本。
~~~     包括Leader副本在内的副本总数构成复制因子。
~~~     所有读取和写入都由Leader副本负责。
~~~     通常,分区比broker多,并且Leader分区在broker之间平均分配。
### --- Follower分区像普通的Kafka消费者一样,

~~~     消费来自Leader分区的消息,并将其持久化到自己的日志中。
~~~     允许Follower对日志条目拉取进行批处理。
### --- 同步节点定义:

~~~     节点必须能够维持与ZooKeeper的会话(通过ZooKeeper的心跳机制)
~~~     对于Follower副本分区,它复制在Leader分区上的写入,并且不要延迟太多
~~~     Kafka提供的保证是,只要有至少一个同步副本处于活动状态,提交的消息就不会丢失。
### --- 宕机如何恢复

~~~     # 少部分副本宕机
~~~     当leader宕机了,会从follower选择一个作为leader。
~~~     当宕机的重新恢复时,会把之前commit的数据清空,重新从leader里pull数据。
~~~     # 全部副本宕机

~~~     当全部副本宕机了有两种恢复方式
~~~     等待ISR中的一个恢复后,并选它作为leader。(等待时间较长,降低可用性)
~~~     选择第一个恢复的副本作为新的leader,无论是否在ISR中。
~~~     (并未包含之前leader commit的数据,因此造成数据丢失)

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on 2022-04-09 14:11  yanqi_vip  阅读(26)  评论(0)    收藏  举报

导航