|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
分类:
bdv013-kafka
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通