028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

高可用技术分析-创新互联

高可用是通过某种协议或技术,协调服务端为客户端提供持续性服务。

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的赣县网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

归纳为三种方式:

  1. 客户端对服务端服务进行健康管理,自动容错

  1. 服务端通过容错或网关协议提供统一的服务地址

  1. 服务端通过高可用模块通知客户端更新服务地址。

从客户端调用服务端维度来考虑,高可用就是 客户端调用服务端持续可用,两种方法,一种在客户端来做,一种在服务端来做:

  1. 客户端调用多个服务端地址,客户端通过自动容错服务端,保证高可用。

  1. 客户端调用一个服务端地址,服务端通过容错协议提供高可用地址,保证高可用。

  1. 客户端调用一个服务端地址,服务端通过高可用模块检测故障,通知客户端更新服务地址,保证高可用。

一次完整的服务请求过程包括以下组件:

  1. DNS

  1. LB

  1. Webapp

  1. Service

  1. DB

应用整体高可用需要每层每个组件高可用。

我们依次分析各层各个组件的高可用情况。

客户端

客户端为边缘节点,是最终使用者。

外部与下游服务

DNS

DNS通过提供主备DNS,提供域名解析服务的高可用,同时辅以本地DNS缓存。

外部与下游服务

https://www.rfc-editor.org/rfc/rfc1995https://www.rfc-editor.org/rfc/rfc1995 Incremental Zone Transfer in DNS
https://www.rfc-editor.org/rfc/rfc5936 DNS Zone Transfer Protocol (AXFR)
DNS 客户端解析超时
传统LB
这里指内网负载均衡

传统LB一般采用 Keepalived+反向代理 方案, 通过Keepalived基于 VRRP协议 实现负载均衡的高可用。

外部与下游服务

https://datatracker.ietf.org/doc/rfc3768/https://datatracker.ietf.org/doc/rfc3768/ Virtual Router Redundancy Protocol (VRRP)
https://datatracker.ietf.org/doc/rfc5798/ Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6
腾讯CLB

腾讯CLB集群由多台LD组成,通过OSPF协议保证集群高可用性。

腾讯支持机架级容灾。机房级(跨AZ)容灾在内测中。
https://www.rfc-editor.org/rfc/rfc2328 OSPF Version 2
阿里SLB

阿里SLB,通过BGP协议实现跨可用区容灾,通过云解析DNS等产品实现跨地域容灾。

以同一个地域双可用区为例,即同城双机房:

阿里SLB支持机房级容灾。
https://www.rfc-editor.org/rfc/rfc4271https://www.rfc-editor.org/rfc/rfc4271 A Border Gateway Protocol 4 (BGP-4)
https://help.aliyun.com/document_detail/67915.html 产品高可用
Webapp

Webapp负责业务页面层,挂载到LB后边。

外部与下游服务

服务注册与发现作为关键组件,需要提供高可用注册与发现服务
不同的服务注册与发现的高可用大同小异,使用到的关键组件均做到高可用。
除了部署多实例,上游服务一般会缓存服务发现的结果,即使服务注册与发现系统出现短暂的故障,也对业务影响较小。
Service

Service负责业务层,提供专项服务。

外部与下游服务

Service间调用与webapp调用service相同
传统DB

数据库用于保存服务数据,是业务的核心。

以MySQL为例,采用MySQL+Keepalived方案提供高可用

主备切换,可能因为网络问题出现数据丢失的问题。
网络出现分区,存在脑裂的情况,脑裂导致数据库多主,业务数据出现错乱,需要尽量避免这种情况
建议当出现主实例停止服务,网络分区等故障时,备实例提供只读服务,避免因多主导致业务数据错乱,较难恢复的情况。
数据强一致性问题,可以考虑采用基于分布式一致性协议的新数据库系统
腾讯云 云数据库 MySQL

腾讯云数据库MySQL内网使用IP端口访问,外网使用域名端口访问。

资料较少,可能与实际情况不符,仅供参考。

内网访问路径为:SLB,MySQL

外网访问路径为:DNS,SLB,MySQL

Proxy访问路径为:Proxy MySQL

阿里云 云数据库 RDS

数据库访问路径为:DNS,SLB,Proxy,RDS

资料较少,可能与实际情况不符,仅做参考。
把RDS当成一个应用来看,每一层都需要保证高可用
DNS通过主备提供高可用
SLB通过网关协议BGP提供高可用
独享代理是高可用架构,拥有2个节点,并且出现故障时会自动切换到备节点。
RDS通过高可用模块检测故障,通知上层更新后端地址,实现RDS高可用(有状态应用上层挂载一个后端地址,与普通无状态应用不同,无状态应用上层直接挂载多个后端地址)
总结

总结以上高可用方案,发现以下特点

  1. 多实例

  1. 客户端连接多个地址,服务端提供多个连接地址。

  1. 客户端对服务端进行健康管理,自动容错

  1. 应用客户端操作系统对DNS服务进行健康管理

  1. Keepalived对反向代理服务进行健康管理

  1. 反向代理对Webapp服务进行健康管理

  1. Webapp对Service服务进行健康管理

  1. Service对DB服务进行健康管理(Service使用mysql connector连接多个TiDB Server启用故障转移)

  1. 同时可以结合中间服务(服务注册与发现),提高服务容错效率(服务发现通知客户端隔离某个服务)。

  1. 客户端连接一个地址,服务端通过某种协议与技术,提供一个地址,保证其高可用。

  1. Keepalived通过VRRP协议,保证VIP高可用

  1. 腾讯CLB通过OSPF协议,保证VIP高可用

  1. 阿里SLB通过BGP协议,保证VIP高可用

  1. 阿里RDS通过HA模块,通知上层更新连接地址,保证服务高可用(类似于服务注册与发现)

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享文章:高可用技术分析-创新互联
路径分享:http://www.tsicrk.com/article/cspcep.html

其他资讯

让你的专属顾问为你服务

0.6399s