一、业务高可用理解
- 概念
- 业务高可用指的是在任何情况下都能够保证业务正常访问;如图:
- 业务高可用指的是在任何情况下都能够保证业务正常访问;如图:
二、业务备份方案
- 概念
-
业务备份指的是将业务系统部署在不同的地方区域,以便某台机器由于某种原因宕机后,可以启用备份机来处理客户端发来的请求;如图:
当山东济南历城区区域的数据中心的系统由于某种原因导致系统宕机或者停机,这时我们就启用山东济南高新区的备份机,来处理客户端发过来请求;两个数据库之间使用同步工具进行同步[mysql:canal工具;其他数据库:DataX]。
-
- 使用前提
- 其他区域不可用,才能使用备用机
- 优势
- 架构复杂性降低
- 数据实时性比较高
- 缺陷
- 由于备份机是不可用的状态,当系统宕机后切换到备份机需要人工干预启动备份机,存在时间上的延迟。
三、同城异区方案
- 概念
-
同城异区指的是将两个系统同时部署在不同的区域,并且同时对外提供访问;如图:
客户端先到到dns服务器根据域名获取到服务的IP地址,再根据IP地址访问某个区域的系统获取到相应的数据后在返回客户端,两个不同区域的数据库使用数据同步工具去同步。
-
- 使用前提
- 允许同步数据存在延迟
- 业务操作实时强 [例如:用户登录]
- 缺陷
- 同步数据会出现延迟,导致数据不一致的[因为两个数据库部署在不同的区域,距离比较远,肯定会出现数据同步延迟的问题,从而导致数据不一致]
- 架构的复杂性
- 公司的成本比较高
- 总结
- 数据特点:数据延时性比较强可以使用同城异区的架构
四、跨城异地方案
- 概念
-
跨城异地是指将系统部署在不同的城市,来保证系统的高可用性;如图:
客户端会根据域名到dns服务器获取到相应的IP地址,再根据IP地址访问相应的系统将数据返回到客户端[不同城市的数据库需要数据同步工具进行同步]
-
- 使用前提
- 允许同步数据存在延时,因为系统部署在不同的城市。
- 允许数据不一致的问题
- 缺陷
- 数据实时比较弱[不在同一个城市,数据同步延时],会出现数据丢失的问题
- 方案
- 使用日志备份方案 [数据库的主从架构实现]
- 方案
- 数据实时比较弱[不在同一个城市,数据同步延时],会出现数据丢失的问题
五、跨国方案
- 概念
-
跨国方案指的是系统部署在不同的国家,来保证系统的高可用性;如图:
客户端发起请求到网关,网关在根据域名判断是否当前国家,如果是则在根据域名到dns服务器获取IP地址,根据IP地址访问哪个城市的部署系统。
-
- 缺陷
- 跨国部署公司成本非常的大
六、接口限流方案
- 概念
-
接口限流指的是限制系统接口处理请求的能力[比如:当客户端发起9000个请求,而设置限流为1000,则剩下的8000请求返回];如图:
当客户端发起请求为9000,而设置限流为1000,则剩下的8000请求返回,保证系统的高可用。
-
- 缺陷
- 直接过滤了请求,拒绝过滤的请求。
七、接口排队方案
- 概念
-
接口排队指的是将处理不了的请求进行排队等待处理请求;如图:
当客户发起请求到nginx服务器,nginx再将请求发给RabbitMq进行排队,然后系统消费这些请求。
-