kafka不完全的首领选举
2022-07-08 11:10:41 0 举报
kafka不完全的首领选举介绍
作者其他创作
大纲/内容
允许(true)
X
如果不同步的副本不能被提升为新首领,那么分区在旧首领(最后一个同步副本)恢复之前是不可用的。有时候这种状态会持续数小时(比如更换内存芯片、故障恢复期)
success
集群高可用
follower
producer
consumer
由以上问题引出了我们的参数:不完全首领选举配置unclean.leader.election
从不可用:分区有 3 个副本,因为网络问题导致两个跟随者副本复制消息滞后,所以尽管它们还在复制消息,但已经不同步了。首领作为唯一的同步副本继续接收消息。这个时候,如果首领变为不可用,另外两个副本就再也无法变成同步的了。
消费
在对可用性要求较高的系统里,比如实时点击流分析系统,一般会启用不完全的首领选举。
写入
一些对数据质量和数据一致性要求较高的系统会禁用这种不完全的首领选举(把这个参数设为 false)。银行系统是这方面最好的例子,大部分银行系统宁愿选择在几分钟甚至几个小时内不处理支付事务,也不会冒险处理错误的消息。
如果不同步的副本可以被提升为新首领,那么在这个副本变为不同步之后写入旧首领的消息会全部丢失,导致数据不一致。
Leader
故障恢复
不允许(false)
鱼和熊掌不可兼得
从崩溃:分区有 3 个副本,其中的两个跟随者副本不可用(比如有两个 broker 发生崩溃)。这个时候,如果生产者继续往首领写入数据,所有消息都会得到确认并被提交(因为此时首领是唯一的同步副本)。现在我们假设首领也不可用了(又一个 broker 发生崩溃),这个时候,如果之前的一个跟随者重新启动,它就成为了分区的唯一不同步副本。
不同步
数据强一致性
0 条评论
下一页