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

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

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

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

1.常见系统架构

在这里插入图片描述

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值