SLB负载均衡实践
使用阿里云负载均衡SLB以及对负载均衡SLB后端服务器ECS的权重进行修改,以实现高并发负载均衡
背景知识——负载均衡
-
定义
- 将访问流量根据转发策略分发到后端多台云服务器(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结合使用
1. 创建资源
- 由于是负载均衡实践,所以阿里云实验为我们提供了两台云服务器ECS
2. 云服务器状态确认
- 我们分别访问两台云服务器ECS的弹性IP地址,可以发现,两个页面的内容完全一样,只是后端服务器的IP不同
在真实场景下,负载均衡后端的服务器中部署的应用都是一致的
3. 负载均衡配置
- 我们点击左侧的
一键复制url
,在浏览器中打开,然后输入实验提供的子用户名称
和子用户密码
,登录阿里云管理控制台
- 点击负载均衡
- 点击
实例管理
,选择实验提供的示例,然后点击点我开始配置
-
【协议 & 监听】配置
- 负载均衡协议:HTTP
- 监听端口:80
- 高级配置:默认
-
【后端服务器】配置
- 监听请求转发至选择
默认服务器组
,然后点击继续添加
- 监听请求转发至选择
- 选择实验预先配置好的两台ECS服务器,点击下一步,点击添加
- 在【后端服务器】界面可以看到刚才添加的两台服务器,将 `端口` 设置为 80,点击下一步
>负载均衡器将会按照输入的权重比例分发请求
-
【健康检查】配置
- 打开
开启健康检查
,然后点击下一步
- 打开
-
【配置审核】
- 确认自己前面信息填写无误后,点击
提交
,弹窗点击知道了
- 确认自己前面信息填写无误后,点击
- 稍等一会,然后刷新一下,健康检查显示为【健康】
4. 负载均衡验证
4.1 验证负载均衡的工作原理
- 刚才创建后,两台服务器的权重均为100,我们首先验证一下负载均衡服务器是否轮询访问后端云服务器ECS实例
- 重复访问此地址,我们可以发现后端服务器IP是在两个云服务器的内网地址间轮流更换
- 如上结果证明:负载均衡会将用户的请求发送到后端不同的服务器进行处理。这样,可以减轻单台服务器的负载压力,从而确保业务的持续性。
4.2 验证不同权重的负载均衡
- 点击
默认服务组
,然后选择两个云服务器实例,点击修改权重
- 我们将两台服务器的权重分别设置为 30 和 90
通过如上的权重配置,用户通过负载均衡访问的时候,1/4 的用户请求发送到一台后端服务器中,3/4 的请求发送到另一台后端服务器中
- 浏览器中,刷新多次负载均衡 服务地址 的页面,并记录页面显示的 后端服务器IP 。可以发现:每 4 次刷新,将有 3 次访问 权重 为 90 的 ECS实例,1 次访问权重为 30 的 ECS实例
4.3 验证会话保持功能
- 点击
管理
- 跳转到监听页面后点击
修改监听配置
- 在高级配置处点击修改
- 开启会话保持,会话保持超时时间设置为 180,然后点击下一步
- 后面几个都选择默认设置即可
- 再次在浏览器中输入 负载均衡 的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台 ECS 上(究竟是哪一台 ECS 没有规定),时间超出后,重新按照权重比例分发
- 关闭开启 会话保持 的那台ECS 。默认服务器组页面,已添加的服务器中 ,点击目标ECS的的高亮部分(即 云服务器ID
- 点击停止将其关闭,等待大概1分钟就会停止运行
- 在【监听】和 【实例】处可以看到都出现了异常
- 此时再进行访问负载均衡的IP地址,请求发送到健康检查状态为正常 的ECS上
通过以上操作我们发现:当某一台 ECS 出现异常后,负载均衡会自动将请求发送到健康检查状态正常的 ECS 上