负载均衡( Load Balance ):
其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
背景:
拥有大量用户的企业,经常会面临如下的难题:在高并发的情况下,经常会导致服务器响应速度慢,严重的情况会直接导致服务器停止服务。此时,会导致企业的业务中断,影响客户的正常访问。
负载均衡应运而生
阿里云的负载均衡SLB(Server Load Balancer):
1.简介:
是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。
负载均衡通过设置虚拟服务地址,将添加的ECS实例虚拟成一个高性能、高可用的应用服务池,并根据转发规则,将来自客户端的请求分发给云服务器池中的ECS实例。
负载均衡默认检查云服务器池中ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用服务的防护能力。
2.架构:
- 负载均衡实例 (Server Load Balancer instances):运行的负载均衡服务,用来接收流量并将其分配给后端服务器
- 监听 (Listeners): 监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
- 后端服务器(Backend Servers):一组接收前端请求的ECS实例。 最少两台服务器
3.原理:
- 负载均衡服务首先创建出负载均衡实例,设置负载均衡实例的虚拟服务地址(即上图virtual IP);
- 同时后端服务器为服务器实例,拥有自己的IP地址(即上图real IP(1、2、3))
- 负载均衡服务通过计算,将访问浏览均衡的分配到多台服务器上
<u>需求:本次实验最低需求两台云服务器ECS</u>
一、云服务器状态确认
上图创建了两台云服务器ECS实例和一个负载均衡实例,它们各自拥有各自的弹性IP地址
验证两台云服务器ECS是否能正常访问
在浏览器两个页面分别输入两台云服务器ECS的弹性IP访问
比较两台ECS的访问结果,发现部署的网站内容相同,只是显示的后端服务器IP不同。
在下面的实验中我们称:
后端服务器IP尾数为130:ECS-1
后端服务器IP尾数为130:ECS-2
在真实场景下,负载均衡后端的服务器中部署的应用都是一致的。
二、负载均衡配置
1.登录
在阿里云登陆界面选择用RAM用户登录
使用实验提供的子用户名称和子用户名密码登陆阿里云管理控制台
<img src="https://upload-images.jianshu.io/upload_images/20425542-fa1a73a6dc138f09.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="4.登陆.png" style="zoom:50%;" />
<img src="https://upload-images.jianshu.io/upload_images/20425542-4d17f4b440d7c9a5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="5.登陆.png" style="zoom:50%;" />
登录后点击左侧 导航栏的 产品与服务 选择 负载均衡
<img src="https://upload-images.jianshu.io/upload_images/20425542-3bad79d4ddfed80d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="6.png" style="zoom: 67%;" />
2.配置负载均衡实例
a.左侧栏选择实例管理->上方选择地区->右下方点击“点我开始配置”
b.选择http负载均衡协议,填写http监听端口80,点击下一步
c.选择默认服务组,点击继续添加
d.勾选两台实例云服务器ECS,点击下一步
e.设置权重各位100,点击添加
f.填入b步骤相同的端口号,下一步
g.开启健康检查
h.检查一遍后,提交
等待一分钟左右,健康检查会显示正常
三、负载均衡验证
验证内容:
- 验证负载均衡的工作原理;
- 验证通过配置不同后端服务器权重,将用户的请求按比例分发到不同后端服务器;
- 验证在一台后端服务器开启会话请求时,请求在会话开启的时间内只会分发到这一台服务器。
1.验证负载均衡的工作原理;
a. 在控制台点击左侧 实例管理 ,在右侧页面中的红框处看到负载均衡的 公网服务地址
该公网服务地址即为负载均衡实例的弹性IP地址
b.在浏览器上输入a的公网服务地址并访问
可见后端服务器IP尾数为131(ECS-2),但当我们刷新一遍后,如下图
后端服务器IP尾数变为130(第二台ECS-1)
当我们不停的刷新,会发现后端服务器IP 实在这两台ECS的内外地址之间轮流转换
因为我们在第二步配置的两台ECS的权重是相同的
下一步我们试着改变两台ECS的权重不相同看看效果如何
2.验证通过配置不同后端服务器权重,将用户的请求按比例分发到不同后端服务器
a.进入控制台--选择负载均衡--实例管理--点击进入实例--默认服务器组,进入如下图所示
b.勾选两台服务器--点击修改权重
c.设置权重 30,90,效果如下图
d.在浏览器中,刷新多次负载均衡服务地址的页面,统计页面的后端服务器IP。
可以发现:每 4 次刷新,将有 3 次访问 权重 为 90 的 ECS实例,1 次访问权重为 30 的 ECS实例。
总结:
用户可以根据实际情况调整负载均衡器的请求分发,一般将配置高的服务器设置的权重调高,配置较低的服务器设置的权重调低。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
3.验证在一台后端服务器开启会话请求时,请求在会话开启的时间内只会分发到这一台服务器
a.实例管理界面---监听---修改监听配置
b.点击修改
c.开启会话保持、可选择修改会话保持超时时间
d.依次点击下一步,不修改
e. 再次在浏览器中输入 负载均衡 的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台 ECS 上(究竟是哪一台 ECS 没有规定),时间超出后,重新按照权重比例分发。
当我们关闭会话保持的ECS-2
a.进入实例
b.点击停止
<img src="https://upload-images.jianshu.io/upload_images/20425542-e7d5f08534cd1938.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="28.png" style="zoom:67%;" />
c.返回,显示如下图所示,ECS-2已关闭
d.在监听页面和实例管理页面,健康状态显示异常
e. 再次刷新浏览器中 负载均衡 的 IP地址 ,此时,请求发送到 健康检查状态 为 正常 的ECS-1上。