前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单的主备切换方案

简单的主备切换方案

作者头像
一见
发布2018-08-07 16:34:16
2.9K0
发布2018-08-07 16:34:16
举报
文章被收录于专栏:蓝天蓝天

    主备切换是很多高可用性系统都必须解决的问题,方法有很多,象基于ZooKeeper的主备切换就是一个很好的选择。

在这里提供一种更简单但不完美的主备切换方法:

1) 假设A和B是集群中的主控(Master)节点

2) 1~7是工作节点(如HDFS中的DataNode)

3) 在每个工作节点上,都同时配置了A和B的IP,而且是对等的,无主备之分

所谓主:是指提供服务的主控,而备是指不提供服务的主控,当主故障时,由备接管其它服务,但因网络原因,可能主和备都未故障,这个是解决主备切换的关键问题所在。

选择A或B作为主的过程:

1) 未连接之前,如图1所示,A和B都不是主

2) 1~7随机选择连接到A或B

3) 这个时候可能会出现如图2所示的情况

4) (关键点)在指定的时间内(如1秒),不管是A还是B,发现到自己的连接数小于50%(这个值可修改)就主动切断连接,这个时候会将本来和自己建立连接的节点赶往另一边

5) 当A或B发现到自己的连接数超过60%(这个值可修改)时,就认为自己是主了,并保持连接

6) 这样当A或B有一个挂掉时,最终肯定会有一个满足作为主的条件

如果是网络原因,而不是A或B本身故障,则会出现一些可以连接到A但不能连接到B,而另一些可以连接到B但不能连接到A,甚至还有些可以同时连接A和B,但总是只有满足超过50%的才提供服务,这样就不会出现同时存在两个主的情况。所以,如果恰好是一半一半,那就无法提供服务,需要人工干预了,比如工作节点,平均分配在两个不同IDC,由于两个IDC间网络故障,问题就会出现。

图1

图2

图3

会不会导致A和B都是40%或50%了?这个会,但会触发重新竞争分配,只需要做一些策略调整,就可以解决这个问题,比如A是每1秒算一个间隔,B为2秒一个间隔。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-07-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档