
交易系统通过预置的容灾架构(主备或多活),结合实时监控(网络延迟、流量、硬件状态阈值)和自动化工具,在检测到网络攻击或硬件故障时,快速切换至备用系统,并通过数据同步(如binlog、消息队列)和业务验证确保业务连续性,核心是“故障检测-自动化切换-数据一致性-业务验证”的闭环保障。
老师口吻解释:容灾切换的核心是“故障检测-决策-执行-验证”流程,需明确故障检测指标与自动化执行逻辑。
(类比:容灾切换就像“备用电源”,主系统故障时,备用系统像“自动切换的开关”,通过实时监控(电流检测)触发,确保电源持续供应。)
| 架构模式 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 主备(Active-Standby) | 主系统运行业务,备系统热备 | 故障时自动切换,切换时间秒级,备系统利用率低 | 对业务连续性要求极高(如金融交易系统),切换时间可接受 | 需确保备系统数据与主系统一致,避免数据不一致导致业务错误 |
| 主活(Active-Active) | 双系统同时处理交易,负载均衡分配请求 | 资源利用率高,双系统均负载,故障时自动切换流量 | 交易量波动大(如高峰期),需高可用且资源利用率高的场景 | 需解决数据同步问题(如分布式事务),避免数据冲突 |
伪代码展示容灾切换流程(以主备模式为例):
1. 监控模块:
- 检测网络攻击:if (网络延迟 > 500ms or 流量 > 正常流量*10) then 触发告警;
- 检测硬件故障:if (CPU使用率=100% or 磁盘满 or 网络中断) then 触发告警。
2. 触发条件判断:若检测到网络攻击或硬件故障,启动自动化工具。
3. 自动化切换:
- Ansible发送指令至备系统(启动服务);
- 启动数据库binlog复制(延迟<1秒)。
4. 业务验证:
- 检查交易量是否正常(如切换后交易量无下降);
- 检查延迟是否在阈值内(如<100ms);
- 若验证通过,切换成功;否则回滚至主系统。
面试官您好,交易系统在遭遇网络攻击或硬件故障时,容灾切换的核心是通过预置的容灾架构(主备或主活),结合实时监控和自动化工具,快速切换至备用系统。具体来说,当系统检测到网络攻击(如DDoS导致网络延迟超阈值,比如500ms以上,流量异常增长超过正常10倍),或硬件故障(如服务器CPU使用率100%、磁盘满、网络中断),监控工具(如Prometheus)会触发告警,自动化工具(如Ansible)立即发送切换指令,备系统接管业务。同时,通过数据库binlog复制(延迟控制在1秒内)和日志同步确保数据一致性,切换后验证关键业务指标(如交易量、延迟、错误率),若正常则切换成功。比如主备模式下,主系统运行交易,备系统热备,故障时自动切换,切换时间控制在0.5-2秒,数据同步延迟小于1秒,切换后业务无中断;主活模式下,双系统通过负载均衡(如Nginx)分配请求,故障时负载均衡器自动切换流量,数据通过消息队列实时同步,资源利用率高,适合交易量波动大的场景。总结来说,容灾切换的关键是“故障检测-自动化执行-数据同步-业务验证”,确保业务连续性。