Class3.ECS+SLB负载均衡实践
写在前面:
利用阿里云提供的功能搭建SLB是非常简单的,按照步骤很快就能搭建成功。所以本文会在介绍搭建负载均衡步骤的同时,也着重在背景介绍中讲一下SLB负载均衡的概念、各种实现负载均衡的方式以及它们之间的区别和优缺点,以及阿里云实现负载均衡的方法。
阿里云ECS7天实践训练营
本文关键字:阿里云,ECS,SLB负载均衡
文章目录
一、背景介绍
1、什么是负载均衡?
百度百科给出的概念是:建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。从概念上来看,负载均衡具有:低成本、可拓展、高可用等特点。
2、负载均衡有什么作用呢?
想象一下,有许多用户同时在某一网站上发出请求,在高并发的情况下,如果只靠一个服务器是不可能处理大量的信息的,常常会出现卡顿甚至网站崩溃停止服务。所以,在用户访问量大的网站背后,是需要大量的服务器去处理这些用户请求的。那么,新的问题又来了,如何让客户端知道向哪台服务器发送请求呢?这就是负载均衡需要解决的问题了。负载均衡将大量请求以一种合理的方式分配给后端服务器,不仅保证了网站的高并发,而且节约了成本,还具有安全、可拓展、高可用等特点。
3、负载均衡的各种实现方式
1)HTTP重定向
浏览器发起请求后,先把请求发送给负载均衡服务器,再由负载均衡服务器中的算法生成一个可用为其解决请求功能的后端服务器的地址(URL),然后发送给浏览器,浏览器再次向指定的后端服务器发送请求并得到相应的回应。
2)DNS负载均衡
DNS是指域名服务器,这种方式和HTTP重定向相似,值得注意的是由负载均衡服务器处理完信息会把指定的后端服务器ip返回给浏览器端,浏览器再通过ip地址把请求发送给指定的后端服务器。
3)反向代理负载均衡
反向代理负载均衡与前两种方式相对不同,它是浏览器发送请求给负载均衡服务器后,如果该服务器能直接处理信息,则直接返回,如果不可用直接处理,就指定后端服务器处理后再返回。
4、阿里云负载均衡架构
阿里云的负载均衡架构主要包括了:监听端、后端服务器。一个负载均衡实例是至少有一个监听端和两个后端服务器的。从下图中可看见,阿里云的监听端是可以有多个的,这就进一步的保证了网站的高并发性。阿里云服务器的负载均衡服务其实是通过地域去实现的,它将同一地域的多台云服务器资源虚拟成一个高性能、高可用的应用服务。
二、 创建资源
1、 查看实验资源
在页面左侧,单击云产品资源下拉菜单,查看本次实验资源。
2、单击免费开通创建所需资源
说明:资源创建过程需要1~3分钟。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:IP地址、用户名和密码等。
三、 云服务器状态确认
注:本小节主要介绍:分别访问实验提供的两台云服务器ECS,观察有什么异同点。
1.查看云服务器信息
点击左侧导航栏处的 云产品资源,查看 云服务器ECS-1 和 云服务器ECS-2 的相关信息。
2. 访问ECS-1
打开浏览器,在输入框中输入 云产品资源 提供的 云服务器ECS-1 的 弹性IP ,页面如下图:***
说明:正常情况下不会显示 后端服务器IP,此处是为了观察比较的便利性而设计的。
3. 访问ECS-2
打开新的窗口,输入 云服务器ECS-2 的 弹性IP ,访问页面如下:
说明:正常情况下不会显示 后端服务器IP,此处是为了观察比较的便利性而设计的。
4.比较两台ECS访问结果
比较两台ECS的访问结果,发现部署的网站内容相同,只是显示的后端服务器IP不同。
说明:在真实场景下,负载均衡后端的服务器中部署的应用都是一致的。
四、负载均衡配置
说明:
本小节的主要内容:将两台服务器挂载到负载均衡的后端,这样,用户只需访问一个IP地址或域名,负载均衡服务器将会根据权重自动转发用户请求到相应的后端服务器上。如下图架构:(本实验只用了一个监听器和两个后端服务器)
使用子账号登录网站通过配置负载均衡的 监听端口、后端服务器 和 健康检查 :
1)在 协议&监听 页面,输入如下信息,完成后,点击 下一步 。
负载均衡协议:选择 HTTP
监听端口:设为 80
高级配置保持默认
2)在 后端服务器 页面,监听请求转发至 默认服务器组,在已添加服务器处点击 继续添加 。
3)在弹出的待添加服务器页面,在预先配置好的两台云服务器前打勾选择,然后点击下一步,之后再点击 添加;
4)在后端服务器界面的已添加服务器列表中,可以看到新增的两台云服务器,分别将 端口 设置为 80,并点击 下一步 。
说明:负载均衡器将会按照输入的权重比例分发请求。
5)在 健康检查 配置中,开启健康检查按钮为绿色 开启状态,点击 下一步。
6)在 配置审核 页面,确认上述配置操作正确,点击 提交;出现如下界面,提示配置成功后,点击 知道了;
7)此时,页面将显示一个状态为 运行中 的负载均衡监听实例,后端服务器组已添加完成两台ECS服务器,且 健康检查 的状态为 正常。
注意:通常等待1分钟左右健康检查状态变为正常,可点击右侧的 刷新 查看。
五、 负载均衡验证
说明
本小节主要内容如下:
- 验证负载均衡的工作原理;
- 验证通过配置不同后端服务器权重,将用户的请求按比例分发到不同后端服务器;
- 验证在一台后端服务器开启会话请求时,请求在会话开启的时间内只会分发到这一台服务器。
1.验证负载均衡的工作原理
此时,两台后端服务器的权重比例相同。通过如下步骤,验证负载均衡服务器是轮询访问后端云服务器ECS实例:
1)在控制台点击左侧 实例管理 ,在右侧页面中的红框处看到负载均衡的 服务地址(也就是 云产品资源 提供的 负载均衡 的 IP地址) ;
(在此图片处红框地址为ip地址,因为当时忘记截图了所以用的是阿里云官方的截图)
2)在浏览器中新建页面,并访问 负载均衡 的 服务地址 。界面显示的 后端服务器IP 为 云服务器ECS-1(或 云服务器ECS-2) 的 内网地址 。
说明:界面显示的地址为内网地址,这是因为负载均衡访问后端ECS实例,是通过内网访问的。
3)刷新 浏览页面,显示的 后端服务器IP 将发生变化,变为 云服务器ECS-2(或 云服务器ECS-1)的 内网地址 ;
4)重复刷新操作,观察 后端服务器IP 是在两个云服务器的 内网地址 间轮流更换。
注: 试了几十次,都是完全意义上的交替更换,真的很强大。
5)如上结果证明:负载均衡会将用户的请求发送到后端不同的服务器进行处理。这样,可以减轻单台服务器的负载压力,从而确保业务的持续性。
2.验证权重修改后的访问
通过如下步骤,修改后端服务器权重,验证负载均衡向后端服务器发送请求的比例是按照权重的比例调整的。
1)返回 实例管理 页面,点击该实例的 默认服务器组 ;
2)选中 已添加的服务器 ,列表中,勾选下方的勾选框 ,然后点击 修改权重 ;
3)弹出对话框中,勾选 设置不同的权重 。
4)设置两个实例的 权重 分别为 30 ,90 。
说明:通过如上的权重配置,用户通过负载均衡访问的时候,1/4 的用户请求发送到一台后端服务器中,3/4 的请求发送到另一台后端服务器中。
5)完成如上配置后,点击 确定 ,生效配置信息。
6)返回已添加的服务器的页面,查看到两台 ECS实例 的权重分别为 30 和 90 ,并记录对应的 ECS实例 内网地址。
7)浏览器中,刷新多次负载均衡 服务地址 的页面,并记录页面显示的 后端服务器IP 。可以发现:每 4 次刷新,将有 3 次访问 权重 为 90 的 ECS实例,1 次访问权重为 30 的 ECS实例。
8)如上结果证明:用户可以根据实际情况调整负载均衡器的请求分发,一般将配置高的服务器设置的权重调高,配置较低的服务器设置的权重调低。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
3.验证会话保持功能下的访问
执行以下步骤,开启负载均衡的 会话保持 功能。
1)点击左侧 监听 ,监听页面点击右侧的 配置 。
2) 配置监听页面的 高级配置 处,点击 修改 ;
3)开启 会话保持 ,超时时间 输入 180 (即 3 分钟);完成后点击 下一步 。
4)下面的 后端服务器、健康检查 和 配置审核 页面都采用默认值 ,依次完成配置。
说明:会话状态时访问ip会一直连接到如图中的后端服务器地址。
5)返回到 监听 页面 ,会话保持 状态 已开启 。
-
再次在浏览器中输入 负载均衡 的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台 ECS 上(究竟是哪一台 ECS 没有规定),时间超出后,重新按照权重比例分发。
-
我们关闭开启 会话保持 的那台ECS 。默认服务器组页面,已添加的服务器中 ,点击目标ECS的的高亮部分(即 云服务器ID)。
-
实例详情页面 ,点击右上角处的 【停止】 ,弹窗页面点击【确定 】关闭当前ECS。
等待1分钟左右,实例的状态变为 已停止 。
- 返回负载均衡管理控制台,在默认服务器组页面中点击右上角的【刷新】,页面刷新后被停止的 ECS 的 状态 变为 已停止。
【监听】 页面,也出现 异常 提示 。
同样的,点击左上角的 【实例管理 】,返回负载均衡管理控制台主页面,异常 报警也会出现。
-
再次刷新浏览器中 负载均衡 的 IP地址 ,此时,请求发送到 健康检查状态 为 正常 的ECS上。
-
结果证明,当某一台 ECS 出现异常后,负载均衡会自动将请求发送到健康检查状态正常的 ECS 上。
说明:ip地址结尾为72的后端服务器关闭,只能访问ip结尾为73的后端服务器了
阿里云高校计划,陪伴两千多所高校在校生云上实践、云上成长。
在这里你可以领用免费的cpu资源,还可以参加免费训练营,实践提高:https://developer.aliyun.com/adc/student/