开发者社区> 问答> 正文

如何使用SLB实现持续性高并发访问?

仟与仟寻 2017-01-03 15:09:30 2737

如何使用SLB实现持续性高并发访问?  云中沙箱实验教您如何提高云服务器的响应速度。

云中沙箱,阿里云官方实验平台。网址:http://lab.aliyunedu.net

一、基本概念

阿里云负载均衡
  • 简介

负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台 ECS 的流量分发控制服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
  • 架构

负载均衡服务主要有三个核心概念:
1)LoadBalancer:负载均衡实例。
2)Listener:用户定制,定义了负载均衡策略和转发规则。
3)BackendServer:后端的一组ECS。



  • 特点



1)负载均衡服务通过设置虚拟服务地址(IP),将位于同一地域(Region)的多台云服务器(Elastic Compute Service,简称ECS)资源虚拟成一个高性能、高可用的应用服务池;根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中。
2)负载均衡服务会检查云服务器池中ECS的健康状态,自动隔离异常状态的ECS,从而解决了单台ECS的单点问题,同时提高了应用的整体服务能力。在标准的负载均衡功能之外,负载均衡服务还具备TCP与HTTP抗DDoS攻击的特性,增强了应用服务器的防护能力。
3)负载均衡服务是ECS面向多机方案的一个配套服务,需要同ECS结合使用。

阿里云负载均衡健康检查



  • 简介



    负载均衡通过健康检查来判断后端 ECS 上的业务可用性。用户开启健康检查功能后,当后端某台 ECS 健康检查出现异常时,负载均衡会自动将新的请求分发到其它健康检查正常的 ECS 上;而当该 ECS 恢复正常运行时,负载均衡会将其自动恢复到对外或对内的服务中。    负载均衡健康检查机制提高了前端业务整体可用性,避免了后端 ECS 异常对总体服务的影响。    如果用户业务对负载有高敏感性,高频率的健康检查探测可能会对用户正常业务访问造成影响。用户可以结合业务情况,通过降低健康检查频率、增大健康检查间隔、7层检查修改为4层检查等方式,来降低对业务的影响。但为了保障业务的持续可用,不建议关闭健康检查。

  • 处理原理



负载均衡通过健康检查来探测后端 ECS 的可用性。开启健康检查功能后,当后端某个 ECS 健康检查出现异常时,来自 Client 的新请求将不会再被转发到该 ECS,直到健康检查检测到该 ECS 上业务恢复正常。



LVS 集群或 Tengine 集群内的相关节点服务器同时承载了数据转发及健康检查职责。
当前集群服务器 IP 段为负载均衡系统IP地址段包括:10.159.0.0/16,10.158.0.0/16,10.49.0.0/16、100.109.0.0/16和100.97.0.0/16。如果后端 ECS 启用了 iptables 等访问控制,需要在内网网卡上针对上述 IP 段做访问放行。
根据负载均衡转发策略,客户端相关访问请求被均分到 LVS 集群内不同服务器(如果是 7 层服务,则如前述说明所述,相关请求被进一步转发到 Tengine 集群)。
LVS 集群内不同服务器分别【独立、并行的】根据负载均衡策略进行数据转发和健康检查操作。
如果某一台 LVS 节点服务器对后端某一台 ECS 健康检查失败,则该 LVS 节点服务器将不会再将新的客户端请求分发给相应的异常 ECS 服务器;LVS 集群内所有服务器同步进行该操作,相互之间没有关联及影响。


  • 7层服务健康检查机制(HTTP或HTTPS协议)




对7层(HTTP或HTTPS协议)服务,负载均衡的健康检查通过 HTTP HEAD 探测来获取状态信息。相关机制如下图所示:注:使用 HTTPS 协议时,证书在负载均衡上完成处理后完结。负载均衡与后端ECS之间的数据交互(包括健康检查数据和业务交互数据),不再通过 HTTPS 进行传输,以提高系统性能。




使用说明如下:
1)Tengine 节点服务器根据负载均衡实例健康检查属性设置,向后端 ECS 的内网 IP+【健康检查端口】+【检查路径】发送 HTTP HEAD 请求(包含【域名】属性)。
2)后端 ECS 服务器收到请求后,根据相应服务的运行情况,返回 HTTP 状态码。
3)如果在【响应超时时间】之内,Tengine 节点服务器没有收到后端 ECS 返回的上述信息,则认为服务无响应,判定健康检查失败。
4)如果在【响应超时时间】之内,Tengine 节点服务器成功接收到后端 ECS 返回的上述信息,则将该返回信息与【正常状态码】属性所勾选的状态码进行比对。如果匹配则判定健康检查成功,反之则判定健康检查失败。
5)健康检查间隔和重试次数根据相应负载均衡实例属性设置进行相应设定。
  • 策略配置

用户可以通过控制台或 API 设置负载均衡服务监听的健康检查策略。当前健康检查可选方式包括 TCP、UDP 和 HTTP(注:HTTPS协议采用 HTTP 方式进行健康检查),不同检查方式下支持的策略属性有所不同。通过管理控制台配置如下图:


1)域名:只有 HTTP 检查方式时才有。非必填属性。配置后,负载均衡会将相应值以 domain 属性传递到后端服务器,以便后端服务器结合该值来配置域名访问控制。没有填写时,默认使用各后端服务器的内网 IP 为域名进行传递。
2)检查端口:非必填属性。健康检查服务访问后端时的探测端口。默认值为服务监听配置时的【后端协议 [端口]】。
3)检查路径:只有 HTTP 检查方式时才有。非必填属性。用于手工指定健康检查页面文件的 URI,建议对静态页面进行检查。默认值为根目录“/”。
4)响应超时时间: 必填属性。健康检查响应的最大超时时间,输入范围 1-300 秒,默认为 5 秒。后端 ECS 在相应时间内没有正确响应,则判定为健康检查失败。
5)健康检查间隔:必填属性。进行健康检查的时间间隔; 输入范围 1-50 秒,默认为 2 秒。、注:如前文所述,LVS 集群内所有节点,都会独立、并行的遵循该属性去对后端 ECS 进行定期健康检查。由于各 LVS 节点的检查时间并不同步,所以,如果从后端某一 ECS 上进行单独统计,会发现来自负载均衡的健康检查请求在时间上并不会遵循上述时间间隔。
6)不健康阈值:必填属性。表示同一 LVS 节点服务器针对后端同一 ECS 服务器,从成功到失败的【连续】健康检查失败次数。可选值 2~10,默认为 3 次。
7)健康阈值:必填属性。表示同一 LVS 节点服务器针对后端同一 ECS 服务器,从失败到成功的【连续】健康检查成功次数。可选值 2~10,默认为 3 次。
8)正常状态码: 只有 HTTP 检查方式时才有。非必填属性。指定用户判断健康检查正常的 HTTP 状态码。可选值为 http_2xx、http_3xx、http_4xx、http_5xx,可多选。默认情况或不做任何选择时,值置为 http_2xx。


二、更多实验信息

如何使用SLB实现持续性高并发访问?  
网址:https://edu.cloudcare.cn/courses/11bc5c2e31a3429082a2b012fe08034d/detail
弹性计算 tengine 负载均衡 网络协议 前端开发 应用服务中间件 网络安全 API 数据安全/隐私保护
分享到
取消 提交回答
全部回答(3)
  • wenni20161201
    2017-01-09 10:38:42
    Re如何使用SLB实现持续性高并发访问?
    之前做过实验,操作环境很真实,基本对阿里云的产品有了初步的认识。
    0 0
  • 仟与仟寻
    2017-01-05 12:42:15
    回 楼主云中沙箱的帖子
    感谢您的支持!

    目前云中沙箱有限时免费实验,欢迎登陆网址http://lab.aliyunedu.net ,体验沙箱实验。

    -------------------------

    回 3楼wenni20161201的帖子

    目前云中沙箱有限时免费实验,欢迎登陆网址http://lab.aliyunedu.net ,体验沙箱实验。
    0 0
  • 妙正灰
    2017-01-03 16:27:14
    这个教学平台不多
    0 0
添加回答

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程