〇、背景知识
简介
负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。负载均衡通过设置虚拟服务地址,将添加的ECS实例虚拟成一个高性能、高可用的应用服务池,并根据转发规则,将来自客户端的请求分发给云服务器池中的ECS实例。负载均衡默认检查云服务器池中ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。
架构
负载均衡服务主要有三个核心概念:
- 负载均衡实例 (Server Load Balancer instances):一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例。
- 监听 (Listeners):监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
- 后端服务器(Backend Servers):一组接收前端请求的ECS实例。您可以单独添加ECS实例到服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。
特点
- 负载均衡服务通过设置虚拟服务地址,将位于同一地域的多台云服务器资源虚拟成一个高性能、高可用的应用服务池;根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中。
- 负载均衡服务会检查云服务器池中ECS的健康状态,自动隔离异常状态的ECS,从而解决了单台ECS的单点问题,同时提高了应用的整体服务能力。在标准的负载均衡功能之外,负载均衡服务还具备TCP与HTTP抗DDoS攻击的特性,增强了应用服务器的防护能力。
- 负载均衡服务是ECS面向多机方案的一个配套服务,需要同ECS结合使用。
优势
- 高可用:采用全冗余设计,无单点,支持同城容灾。根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。
- 可扩展:可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。
- 低成本:与传统硬件负载均衡系统高投入相比,成本可下降60%。
安全:结合阿里云云盾,可提供5Gbps的防DDOS攻击能力。
## 一、创建资源并确认云服务器状态
在阿里云中创建好体验资源,在浏览器中输入两台ECS服务器的公网弹性IP地址,可以看到两台服务器部署的内容一致,而后端服务器IP地址不同
二、负载均衡配置
我们将两台服务器挂载到负载均衡的后端,这样,用户只需访问一个IP地址或域名,负载均衡服务器将会根据权重自动转发用户请求到相应的后端服务器上。
- 登录子用户的管理控制台,进入导航栏的【产品与服务】——【弹性计算】——【负载均衡】
- 进入左侧实例管理,打开实验提供的实例,在实例列表页面,点击目标实例右侧的点我开始配置
在协议&监听页面,输入如下信息
- 负载均衡协议:选择 HTTP
- 监听端口:设为 80
- 高级配置保持默认
- 在后端服务器页面,监听请求转发至默认服务器组,在已添加服务器处点击继续添加
- 在弹出的待添加服务器页面,在预先配置好的两台云服务器前打勾选择,下一步选择添加
- 在后端服务器界面的已添加服务器列表中,可以看到新增的两台云服务器,将端口设置为80
- 在健康检查配置中,开启健康检查按钮为绿色开启状态
- 在配置审核页面,确认上述配置操作正确,提交成功后会出现如下界面
- 此时,页面将显示一个状态为运行中的负载均衡监听实例,后端服务器组已添加完成两台ECS服务器,且健康检查的状态为正常
三、负载均衡验证
我们将进行如下的验证工作:
- 验证负载均衡的工作原理;
- 验证通过配置不同后端服务器权重,将用户的请求按比例分发到不同后端服务器;
- 验证在一台后端服务器开启会话请求时,请求在会话开启的时间内只会分发到这一台服务器
---
此时两台后端服务器的权重均为100,比例相同。通过如下步骤,验证负载均衡服务器是轮询访问后端云服务器ECS实例
- 在控制台点击左侧实例管理,可以看到负载均衡的服务地址,也就是云产品资源提供的负载均衡的公网IP地址
- 访问负载均衡的服务地址,界面显示的后端服务器地址为ECS-1的内网地址
- 刷新页面,显示的后端地址发生变化,变成ECS-2的地址
- 重复刷新几次,可以观察到后端服务器地址在ECS-1和ECS-2的内网地址间来回切换,说明负载均衡会将用户的请求发送到后端不同的服务器进行处理。这样,可以减轻单台服务器的负载压力,从而确保业务的持续性。
---
通过如下步骤,修改后端服务器权重,验证负载均衡向后端服务器发送请求的比例是按照权重的比例调整的。
- 返回实例管理页面,进入默认服务器组,勾选两台服务器,点击修改权重
- 在弹出的窗口中,勾选设置不同的权重,将ECS-1的权重设为75,ECS-2的权重设为25。此时,用户通过负载均衡访问的时候,3/4 的用户请求发送到ECS-1中,1/4 的请求发送到ECS-2中。
- 在浏览器中多次刷新服务地址的页面,可以看到每4次访问页面,有3次显示的后端IP为ECS-1,1次显示的后端IP为ECS-2,说明用户可以根据实际情况调整负载均衡器的请求分发,一般将配置高的服务器设置的权重调高,配置较低的服务器设置的权重调低。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
---
执行下面的步骤,开启负载均衡的会话保持功能
- 点击上方栏的监听,在监听页面进入右侧的修改配置
- 在配置页面的高级设置处,点击修改,开启会话保持,超时时间设为180(即3分钟)
- 后面的页面均保持默认值,依次完成配置
- 回到监听页面,可以看到会话保持状态已开启
- 在浏览器输入负载均衡的IP地址,可以看到在会话保持的超时时间(3分钟)内请求只会分发到ECS-1,时间超出后,重新按照权重比例分发。
- 我们关闭开启会话保持的ECS,即ECS-1。在默认服务器组页面中已添加的服务器中,点击ECS-1的ID
- 在实例的管理页面,点击右上角的停止,并确认,等待一会儿后,实例的状态变为已停止
- 返回负载均衡管理控制台,在默认服务器组页面中点击右上角的刷新,页面刷新后被停止的 ECS 的 状态 变为已停止
监听页面和负载均衡管理主页面,都可以看到异常警告
- 刷新浏览器中的负载均衡页面,可以看到此时后端地址为健康状态正常的ECS-2上,说明当某一台 ECS 出现异常后,负载均衡会自动将请求发送到健康检查状态正常的 ECS 上