简单的主备切换方案

本文介绍了一种简单的主备切换方案,通过集群中各节点随机连接到主控节点A或B,实现动态平衡。当主控节点之一故障时,该方案能够确保另一个节点接管服务,避免双主现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    主备切换是很多高可用性系统都必须解决的问题,方法有很多,象基于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秒一个间隔。

转载于:https://www.cnblogs.com/aquester/archive/2012/07/24/9891779.html

### 地铁车载系统的冗余切换原理及实现 #### 设计目标 为了确保地铁运营的安全性和可靠性,车载系统采用了冗余设计。该设计方案旨在当系统发生故障时,用系统可以无缝接管工作,从而保障列车的持续安全运行。 #### 切换机制概述 在实际应用中,地铁车载自动化列车控制系统(ATC)具两个独立的工作单元:一个是要负责日常操作的要控制器;另一个是在前者失效情况下立即启动工作的份控制器。这两个控制器间存在实时的数据同步过程[^2]。 #### 数据同步与状态监测 - **数据一致性**:通过高速通信链路保持两套系统之间的参数一致,包括但不限于速度命令、位置信息和其他关键指令。 - **健康监控**:利用内置诊断程序不断检测各个组件的状态,一旦发现异常即刻触发警报并准切换用模式。 #### 故障检测与响应策略 - 当控器内部硬件或软件出现问题时,会向副控发送信号通知其进入待命状态; - 副控接收到此信号后迅速完成自我初始化,并依据最新接收的任务数据接手当前任务执行; - 此外,在某些高级别的ATS/ATO方案里还会设置第三方仲裁节点来判断哪个处理器更适合继续担任导角色,以此提高决策准确性。 #### 实现细节 ```cpp // C++伪代码展示简单的双机热逻辑框架 class RedundantSystem { public: void SwitchToBackup() const; private: bool IsPrimaryHealthy(); }; void RedundantSystem::SwitchToBackup() const { if (!IsPrimaryHealthy()) { // 如果系统不健康,则尝试切换用系统 BackupController.Activate(); // 激活用控制器 PrimaryController.Deactivate(); // 关闭原控制器 } } ``` 上述描述涵盖了地铁车载系统中的冗余切换的基本概念和技术要点。值得注意的是,具体的实施方案可能会因不同制造商的技术路线而有所差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值