前言
今天是阿里云7天训练营的第三天,实践内容是配置SLB负载均衡。将多台服务器挂载到负载均衡的后端,这样,用户只需访问一个IP地址或域名,负载均衡服务器将会根据权重自动转发用户请求到相应的后端服务器上。操作起来并不复杂,但是选择合适的权重和超时时间却并不简单。
一、创建资源
- 因为需要至少两台服务器才能测试负载均衡的效果,所以这次会创建两台服务器供用户实验。
(1)在开发者云体验实验室里找到SLB负载均衡实践
(2)点击开始体验→免费开通,稍等片刻,左侧会有两台服务器的基本信息。
(3)在浏览器的地址栏输入服务器的IP地址并搜索,正常情况下会显示以下内容
二、SLB负载均衡
1.负载均衡配置
(1)用浏览器隐身窗口(或无痕模式)登录控制台
(2)点击左侧导航栏的产品与服务→负载均衡→实例管理→开始配置
(3)如图配置负载均衡的监听端口
(4)后端服务器选择默认服务器组
(5)添加先前创建的两台云服务器,添加之后将端口都设置为80
(6)开启健康检查,然后提交即可
(7)此时,页面将显示一个状态为 运行中 的负载均衡监听实例,后端服务器组已添加完成两台ECS服务器,且健康检查的状态为正常
- 若未显示正常,可以等待1分钟左右刷新查看
2.负载均衡验证
主要验证内容如下:
(1)验证负载均衡的工作原理
(2)验证通过配置不同后端服务器权重,将用户的请求按比例分发到不同后端服务器
(3)验证在一台后端服务器开启会话请求时,请求在会话开启的时间内只会分发到这一台服务器
(1)负载均衡的工作原理
- 后端服务器的权重比例相同时,负载均衡服务器是轮询访问后端云服务器ECS实例
- 不断刷新页面,可以发现后端服务器IP是在两个云服务器的内网地址间轮流更换
(2)配置不同权重,验证实验结果
① 返回实例管理页面,点击该实例的默认服务器组
② 选中 已添加的服务器,然后点击修改权重;弹出对话框中,勾选设置不同的权重设置两个实例的权重分别为 30 ,90
- 通过如上的权重配置,用户通过负载均衡访问的时候,1/4 的用户请求发送到权重为30的后端服务器中,3/4 的请求发送到权重为90的后端服务器中
③ 在浏览器中,多次刷新负载均衡服务地址的页面,并记录页面显示的后端服务器IP 。可以发现:每 4 次刷新,将有 3 次访问权重为90的ECS实例,1 次访问权重为30的ECS实例,与预期相同
由此可知,用户可以根据实际情况调整负载均衡器的请求分发,一般将配置高的服务器设置的权重调高,配置较低的服务器设置的权重调低。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
(3)开启会话保持功能,验证实验结果
① 点击左侧监听,监听页面点击右侧的修改监听配置
② 配置监听页面的高级配置处,点击修改
③ 开启会话保持,超时时间输入60(即 1 分钟)。后面的设置都按照默认值即可
④ 返回到监听页面 ,点击监听名称,查看监听信息,可以看到会话保持状态已开启
⑤ 再次在浏览器中输入负载均衡的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台 ECS 上(究竟是哪一台 ECS 没有规定),时间超出后,重新按照权重比例分发
⑥ 将两台ECS都停止,等待片刻后可以看到监听页面出现异常提示
⑦ 在实例管理里也可以看到异常报警
⑧随意开启一个ECS,然后刷新浏览器中的负载均衡的IP地址,此时,请求发送到开启的那个ECS上
⑨ 结果证明,当某一台 ECS 出现异常后,负载均衡会自动将请求发送到健康检查状态正常的 ECS 上
三、其他问题
指导手册里让关闭开启会话保持的那台ECS ,不过我无法得知是哪台ECS开启了会话保持。经过摸索,我发现随意关闭一个ECS并不会造成监听和负载均衡异常,只有将两台ECS都关闭之后才会出现指导手册里说明的异常,然后随意开启一台ECS即可进行后续测试。
阿里云高校计划
阿里云高校计划,陪伴两千多所高校在校生云上实践、云上成长。在这里你可以领用免费的cpu资源,还可以参加免费训练营,实践提高:https://developer.aliyun.com/adc/student/