如何构建高可用的系统(二): 消除单点与自动故障转移

本文讲述了如何构建高可用的系统,重点在于消除单点和实现自动故障转移。通过DNS/自研路由机制、多机房部署、LB层的虚拟IP漂移、API/Service层的无状态服务以及存储层的主从复制和高可用策略,确保系统在遇到故障时能自动切换,降低业务影响。

前一篇文章我们讲到, 一切单点都是不可靠的, 如果系统中某个地方可能会出问题(就算概率很低),那么它迟早会出问题。 也就是我们常说的Murphy’s Law。如果要提高系统的可用性, 那么就必须尽可能消灭掉系统中所有的单点,并且在发生故障时,把流量自动转移到运行正常的节点。

在这篇文章中, 我会以互联网产品后端常见的架构为例, 讲述如何达到这个目标。

1.常见系统架构

在这里插入图片描述

互联网后端应用的常见架构可以用上图来简单描述(简化了单机房内其他系统、多机房等):

  1. 在App或浏览器端, 通过DNS或自己的路由机制, 把域名解析为IP, 从而进行网络通信
  2. 后端系统的最外层, 通常是负载均衡器, 把流量分摊到下游的API (当然, LB内部也可以分更多层)
  3. API层处理业务逻辑,同时也会依赖下游服务。比如处理创建用户的请求, API层可能需要做输入内容的校验,然后调用下游用户服务来完成创建工作
  4. 服务层往往有自己的存储系统, 涉及到数据库、缓存, 同时也会利用MQ与其他系统进行解耦通信(当然API层可能也有)
  5. 与下游进行通信前,都需要通过服务发现机制,获取到下游的具体实例信息, 方可进行通信

2.消除单点与自动故障转移

2.1 DNS/自研路由机制

由于DNS系统一般不是我们自己维护, 所以这里不讨论DNS系统的高可用, 而是讨论作为它的用户,我们可以做哪些事情来避免它成为我们系统中的单点。

大家都知道, 我们依赖DNS来把域名解析为后端系统入口的IP, 如果我们没有

内容概要:ISO 16750-2:2023标准规定了道路车辆电气和电子设备的环境条件和测试方法,特别是针对电气负载的要求。该标准适用于12V和24V系统的电气和电子组件,不包括摩托车和轻便摩托车的系统和组件。标准详细描述了各种电气负载测试,包括直流电源电压、过压、叠加交流电压、电源电压缓慢升降、电源电压中断、反向电压、接地参考和电源偏移、开路测试、短路/过载保护、耐压、绝缘电阻以及电磁兼容性测试。每个测试项目都明确了目的、测试方法、操作模式及具体要求。此外,标准还提供了负载突降脉冲发生器的验证程序,并解释了负载突降脉冲在车辆电气系统中的起源。适合人群:从事汽车电子产品研发、测试和质量控制的工程师和技术人员;汽车制造商和供应商的质量管理人员;负责汽车电子产品认证的机构和个人。使用场景及目标:①确保汽车电子设备在各种电气负载条件下能够正常运行;②帮助工程师和技术人员了解并实施ISO 16750-2:2023标准中规定的测试方法;③为汽车制造商和供应商提供统一的测试标准,确保产品质量和可靠性;④为认证机构提供详细的测试指南,以评估产品的合规性。其他说明:该标准由国际标准化组织(ISO)制定,第五版于2023年发布,取代了第四版(ISO 16750-2:2012)。标准中引用了多个相关标准,如ISO 8820、ISO 16750-1、ISO 16750-4等。此外,标准还提供了详细的附录,包括负载突降脉冲发生器的验证程序和负载突降脉冲的起源解释。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值