js网站特效记事本做网站报告
web/
2025/9/29 16:34:58/
文章来源:
js网站特效,记事本做网站报告,网站建设公司利润怎么样,河南省企业年报网上申报入口Zookeeper脑裂原因#xff1a;
主要原因是Zookeeper集群和Zookeeper client判断超时并不能做到完全同步#xff0c;也就是说可能一前一后#xff0c;如果是集群先于client发现#xff0c;那就会出现上面的情况。同时#xff0c;在发现并切换后通知各个客户端也有先后快慢…Zookeeper脑裂原因
主要原因是Zookeeper集群和Zookeeper client判断超时并不能做到完全同步也就是说可能一前一后如果是集群先于client发现那就会出现上面的情况。同时在发现并切换后通知各个客户端也有先后快慢。一般出现这种情况的几率很小需要leader节点与Zookeeper集群网络断开但是与其他集群角色之间的网络没有问题还要满足上面那些情况但是一旦出现就会引起很严重的后果数据不一致。
Zookeeper 脑裂解决方案
要解决Split-Brain脑裂的问题一般有下面几种种方法 Quorums (法定人数) 方式: 比如3个节点的集群Quorums 2, 也就是说集群可以容忍1个节点失效这时候还能选举出1个lead集群还可用。比如4个节点的集群它的Quorums 3Quorums要超过3相当于集群的容忍度还是1如果2个节点失效那么整个集群还是无效的。这是zookeeper防止脑裂默认采用的方法。
采用Redundant communications (冗余通信)方式集群中采用多种通信方式防止一种通信方式失效导致集群中的节点无法通信。
Fencing (共享资源) 方式比如能看到共享资源就表示在集群中能够获得共享资源的锁的就是Leader看不到共享资源的就不在集群中。
要想避免zookeeper脑裂情况其实也很简单在follower节点切换的时候不在检查到老的leader节点出现问题后马上切换而是在休眠一段足够的时间确保老的leader已经获知变更并且做了相关的shutdown清理工作了然后再注册成为master就能避免这类问题了这个休眠时间一般定义为与zookeeper定义的超时时间就够了但是这段时间内系统可能是不可用的但是相对于数据不一致的后果来说还是值得的。
1 zooKeeper默认采用了Quorums 这种方式来防止脑裂现象。即只有集群中超过半数节点投票才能选举出Leader。这样的方式可以确保leader的唯一性,要么选出唯一的一个leader,要么选举失败。在zookeeper中Quorums作用如下
集群中最少的节点数用来选举leader保证集群可用。通知客户端数据已经安全保存前集群中最少数量的节点数已经保存了该数据。一旦这些节点保存了该数据客户端将被通知已经安全保存了可以继续其他任务。而集群中剩余的节点将会最终也保存了该数据。
假设某个leader假死其余的followers选举出了一个新的leader。这时旧的leader复活并且仍然认为自己是leader这个时候它向其他followers发出写请求也是会被拒绝的。因为每当新leader产生时会生成一个epoch标号(标识当前属于那个leader的统治时期)这个epoch是递增的followers如果确认了新的leader存在知道其epoch就会拒绝epoch小于现任leader epoch的所 有请求。那有没有follower不知道新的leader存在呢有可能但肯定不是大多数否则新leader无法产生。Zookeeper的写也遵循quorum机制因此得不到大多数支持的写是无效的旧leader即使各种认为自己是leader依然没有什么作用。
zookeeper除了可以采用上面默认的Quorums方式来避免出现脑裂还可以可采用下面的预防措施
2 添加冗余的心跳线例如双线条线尽量减少“裂脑”发生机会。
3 启用磁盘锁。 正在服务一方锁住共享磁盘“裂脑发生时让对方完全抢不走共享磁盘资源。但使用锁磁盘也会有一个不小的问题如果占用共享盘的一方不主动解锁”另一方就永远得不到共享磁盘。现实中假如服务节点突然死机或崩溃就不可能执行解锁命令。后备节点也就接管不了共享资源和应用服务。于是有人在HA中设计了智能锁。即正在服务的一方只在发现心跳线全部断开察觉不到对端时才启用磁盘锁。平时就不上锁了。
4 设置仲裁机制。 例如设置参考IP如网关IP当心跳线完全断开时2个节点都各自ping一下 参考IP不通则表明断点就出在本端不仅心跳、还兼对外服务的本端网络链路断了即使启动或继续应用服务也没有用了那就主动放弃竞争让能够ping通参考IP的一端去起服务。更保险一些ping不通参考IP的一方干脆就自我重启以彻底释放有可能还占用着的那些共享资源。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83999.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!