开发者学堂课程【Clouder认证课程 - 超大流量网站的负载均衡:云负载均衡的高可用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/508/detail/6805
云负载均衡的高可用
内容介绍:
一、背景
二、阿里云负载均衡 SLB 的基础架构
三、负载均衡 SLB 高可用配置最佳实践
一、背景
使用云负载均衡就是为了解决原来网站部署在单机上的单点问题,现在在云负载均衡后部署多台服务器来部署网站,从而实现网站的高可用。但是多台服务器前还是只有一个云负载均衡服务。本节介绍云负载均衡服务本身是否是高可用的以及如何实现。
在讲解云负载均衡服务的高可用前先介绍云负载均衡的背景。在使用云服务时一般都是使用多地域多可用的方式来实现冗杂的需求。云负载均衡的高可用也是通过多地域多可用的方式实现。地域可用机制在云计算领域中至关重要,以阿里云为例,也存在地域多可用。地域指阿里云在哪些城市中部署自己的基础设施,例如北京、上海等。可用区指在一个地域中可以搭建不同的机房,每一个机房可以简单理解为是一个可用区,例如北京地域有四个不同的可用区,可用区与可用区之间的网络、电力等物理设施都是严格隔离的,从而实现同城灾备。在一个地域中不同可用区中部署服务可以实现同城灾备。如果有更高的灾备需求,可以在多个地域去部署服务,例如北京部署一套服务,在深圳部署一套服务,那么可用性就会更高。
二、阿里云负载均衡 SLB 的基础架构
在使用阿里云的 SLB 时,创建时默认将服务创建在两个不同的可用区中,在同一个地域的不同可用区来部署负载均衡 SLB。例如在北京创建一个负载均衡 SLB 时会提供选择主实例所在的可用区及备份实例所在的可用区。
在创建 SLB 实例时是通过多可用区的部署方式来实现负载均衡 SLB 本身的高可用。作为用户不需要自己考虑如何通过部署多台不同的负载均衡 SLB 来实现高可用。阿里云已经考虑到给用户同一个地域不同可用区的容灾方式,默认已经实现了同城容灾,不需要用户实现。用户可以考虑不同地域,例如在北京有一个 SLB 实例,该地域已经实现了同城灾备,如果想实现一个不同地域之间的灾备,此时还需要在北京之外例如上海创建一个 SLB 实例,实现北京上海两个 SLB 实例。如果存在两个实例那么在使用过程中还需要结合阿里云的其他服务进行使用,根据请求的物理位置转发到不同的 SLB 实例上进行响应。
SLB 内部都是通过集群进行实现,代表 SLB 没有单点故障的问题。SLB 本身已经通过多台服务器部署来提升可用性,不单是在多个可用区部署,同时在可用区内部也是部署在不同的服务器之上。
SLB 负载均衡服务本身是采用了两个开源的技术来实现本身的服务,一个为四层使用 LVS 进行流量分发,另一个七层使用 Tengine。
四层采用开源软件 LVS ( Linux Virtual Server ) + keepalived
的方式实现负载均衡,并根据云计算需求对其进行了个性化定制。
七层采用 Tengine 实现负载均衡。Tengine 是由淘宝网发起的
Web 服务器项目,它在 Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。
多可用区部署-负载均衡 SLB 支持多可用区部署,以实现同地域下的跨机房容灾。
三、负载均衡 SLB 高可用配置最佳实践
建议您在负载均衡使用和配置过程中采用如下措施以提高负载均衡业务可用性︰
1、将负载均衡后端服务器部署在同一地域的不同可用区内( SLB 本身是在同一个地域不同可用区进行部署,可以提升 SLB 本身的可用性。但如果云服务器 ECS 只部署在一个可用区中,ECS 所在的可用区出现问题,SLB 接收到请求后后端没有可以响应的云服务器 ECS,也会造成业务中断。所以要注意在搭建自己的业务系统时SLB 本身是在多个可用区中进行部署,在往 SLB 后添加云服务器 ECS 资源时,云服务器 ECS 尽量要选择 SLB 主实例所在的可用区有相关的 ECS 实例,同时在 SLB备份实例所在的可用区中也会有一些 ECS 实例。这样才能提升系统的可用性),然后结合负载均衡多可用区特性实现本地容灾
-跨可用区访问会增加访问延迟,需要根据业务敏感性进行评估。(例如可用区 A SLB 实例与可用区 B ECS 实例间有 3ms 的延迟。相对于同一个可用区内部的访问,跨可用区之间存在 3ms 的延迟。所以如果业务对于网络处理的敏感性比较高,在搭建时尽量将所有服务都部署在 SLB 主实例的可用区,在备份的 SLB 实例可用区中搭建一个或两个云服务 ECS 即可。)
2、开启负载均衡后端 ECS 的健康检查,以便实现负载均衡对异常 ECS 自动进行隔离或恢复。(如果 SLB 实例后的某一台云服务器 ECS 出现故障,SLB 会将请求转发给正常的 ECS 服务器,而不会转发到出错的云服务 ECS 上。)
3、负载均衡后端最少配置两台及以上 ECS。这样才能在其中某一台出现异常的时候,将前端访问调度到其它正常 ECS,否则单台 ECS 故障,会导致负载均衡业务整体不可用。(提升后端网站服务的可用性。但不是负载均衡 SLB 后必须部署两台或两台以上,部署一台也可以,但是建议部署两台)
4、在业务层面配置自动重联机制,从而在访问请求落到异常的负载均衡后端 ECS时,客户端能够自动重联,以便负载均衡将新的请求调度到正常 ECS,进而提高业务可用性。(让 ECS 中间有一个中断情况,需要我们在业务层面将自动重联机制打开,这种情况主要是为了避免忘记打开健康检查的用户的请求发送过来后转发给了出错的 ECS 进行处理,出现了业务中断的情况。)
以上就是在使用负载均衡服务时的一些建议使用方式,通过这些手段可以提升云上自己搭建业务系统的可用性。