SLB负载均衡实践
背景知识
什么是负载均衡
负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。
组成部分
- 负载均衡实例 (Server Load Balancer instances)
一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例。
- 监听 (Listeners)
监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
- 后端服务器(Backend Servers)
一组接收前端请求的ECS实例。您可以单独添加ECS实例到后端服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。
特点
- 负载均衡服务通过设置虚拟服务地址(IP),将位于同一地域(Region)的多台云服务器(Elastic Compute Service,简称ECS)资源虚拟成一个高性能、高可用的应用服务池;根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中。
- 负载均衡服务会检查云服务器池中ECS的健康状态,自动隔离异常状态的ECS,从而解决了单台ECS的单点问题,同时提高了应用的整体服务能力。在标准的负载均衡功能之外,负载均衡服务还具备TCP与HTTP抗DDoS攻击的特性,增强了应用服务器的防护能力。
- 负载均衡服务是ECS面向多机方案的一个配套服务,需要同ECS结合使用。
产品优势
- 高可用
采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾,可用性高达99.95%。
根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。
- 可扩展
您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。
- 低成本
与传统硬件负载均衡系统高投入相比,成本可下降60%。
- 安全
结合云盾,可提供5Gbps的防DDoS攻击能力。
- 高并发
集群支持亿级并发连接,单实例提供千万级并发能力。
开始实验
云服务器状态确认
- 云服务器ECS-1
Tips:
正常情况下不会显示 后端服务器IP,此处是为了观察比较的便利性而设计的。
- 云服务器ECS-2
- 观察结果
比较两台ECS的访问结果,发现部署的网站内容相同,只是显示的后端服务器IP不同。
tips:
在真实场景下,负载均衡后端的服务器中部署的应用都是一致的。这不难理解,在解决高并发带来的难题的同时,也要保证不同用户得到的服务是一样的。
负载均衡配置
- 登录阿里云管理控制台
- 点击左侧导航栏的 产品与服务 ,下拉菜单中,在 弹性计算 条目下选择 负载均衡
- 点击左侧的 实例管理 ,然后打开实验提供的实例,在实例列表页面,点击目标实例右侧的 点我开始配置
-
通过负载均衡业务配置向导,配置负载均衡的 监听端口、后端服务器 和 健康检查
- 负载均衡协议:选择 HTTP
- 监听端口:设为 80
- 高级配置保持默认
- 在 后端服务器 页面,监听请求转发至 默认服务器组,在已添加服务器处点击 继续添加
- 在弹出的待添加服务器页面,在预先配置好的两台云服务器前打勾选择,然后点击下一步,之后再点击 添加;
- 在后端服务器界面的已添加服务器列表中,可以看到新增的两台云服务器,分别将 端口 设置为 80,并点击 下一步
- 在 健康检查 配置中,开启健康检查按钮为绿色 开启状态,点击 下一步。
- 配置审核 页面,确认上述配置操作正确,点击 提交;出现如下界面,提示配置成功后,点击 知道了;
- 此时,页面将显示一个状态为 运行中 的负载均衡监听实例,后端服务器组已添加完成两台ECS服务器,且 健康检查 的状态为 正常。
负载均衡检验
- 此时,两台后端服务器的权重比例相同,因此在刷新操作下后端服务器IP 是在两个云服务器的 内网地址 间轮流更换。
- 设置两个实例的 权重 分别为 30 ,90 。此时,用户通过负载均衡访问的时候,1/4 的用户请求发送到一台后端服务器中,3/4 的请求发送到另一台后端服务器中。
结果证明:负载均衡会将用户的请求发送到后端不同的服务器进行处理。这样,可以减轻单台服务器的负载压力,从而确保业务的持续性
- 开启负载均衡的 会话保持 功能,再次在浏览器中输入 负载均衡 的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台 ECS 上,时间超出后,重新按照权重比例分发。
- 我们关闭开启 会话保持 的那台ECS 【监听】 页面,也出现 异常 提示,再次刷新浏览器中 负载均衡 的 IP地址 ,此时,请求发送到 健康检查状态 为 正常 的ECS上。
结果证明,当某一台 ECS 出现异常后,负载均衡会自动将请求发送到健康检查状态正常的 ECS 上。