一、云服务器状态确认
1.点击左侧导航栏处的 云产品资源,查看 云服务器ECS-1 和 云服务器ECS-2 的相关信息。
2.打开浏览器,在输入框中输入 云产品资源 提供的 云服务器ECS-1 的 弹性IP ,页面如下图:
3.打开新的窗口,输入 云服务器ECS-2 的 弹性IP ,访问页面如下:
4.比较两台ECS的访问结果,发现部署的网站内容相同,只是显示的后端服务器IP不同
tips:在真实场景下,负载均衡后端的服务器中部署的应用都是一致的。
二、负载均衡配置
负载均衡:负载均衡(Load Balancer)是指把用户访问的流量,通过「负载均衡器」,根据某种转发的策略,均匀的分发到后端多台服务器上,后端的服务器可以独立的响应和处理请求,从而实现分散负载的效果。负载均衡技术提高了系统的服务能力,增强了应用的可用性。
将两台服务器挂载到负载均衡的后端,这样,用户只需访问一个IP地址或域名,负载均衡服务器将会根据权重自动转发用户请求到相应的后端服务器上。
1.登录阿里云负载均衡控制台
2.点击左侧的 实例管理 ,然后打开实验提供的实例,在实例列表页面,点击目标实例右侧开始配置
3.通过负载均衡业务配置向导,配置负载均衡的 监听端口、后端服务器 和 健康检查
负载均衡协议:选择 HTTP
监听端口:设为 80
高级配置保持默认
4.添加两台云服务器,分别将 端口 设置为 80,并点击 下一步 。
tips:负载均衡器将会按照输入的权重比例分发请求。
5.在 健康检查 配置中,开启健康检查按钮为绿色 开启状态并提交审核
6.此时,页面将显示一个状态为 运行中 的负载均衡监听实例,后端服务器组已添加完成两台ECS服务器,且 健康检查 的状态为 正常。
三、负载均衡验证
此时,两台后端服务器的权重比例相同,在控制台点击左侧实例管理,在右侧页面中的红框处看到负载均衡的服务地址(也就是云产品资源提供的负载均衡的 IP地址
1.在浏览器中新建页面,并访问 负载均衡 的 服务地址 。
界面显示的 后端服务器IP 为 云服务器ECS-1(或 云服务器ECS-2) 的 内网地址,当刷新时,后端服务器IP 在两个云服务器的 内网地址 间轮流更换
证明:负载均衡会将用户的请求发送到后端不同的服务器进行处理。这样,可以减轻单台服务器的负载压力,从而确保业务的持续性。
2.返回实例页面,设置两个实例的 权重 分别为 30 ,90
tips:通过如上的权重配置,用户通过负载均衡访问的时候,1/4 的用户请求发送到一台后端服务器中,3/4 的请求发送到另一台后端服务器中。
3.返回已添加的服务器的页面,查看到两台 ECS实例 的权重分别为 30 和 90 ,并记录对应的 ECS实例 内网地址。
浏览器中,刷新多次负载均衡 服务地址 的页面,并记录页面显示的 后端服务器IP 。可以发现:每 4 次刷新,将有 3 次访问 权重 为 90 的 ECS实例,1 次访问权重为 30 的 ECS实例
证明:用户可以根据实际情况调整负载均衡器的请求分发,一般将配置高的服务器设置的权重调高,配置较低的服务器设置的权重调低。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
4.开启负载均衡的 会话保持 功能:
5.超时时间 输入 180 (即 3 分钟)
以此完成配置,返回到 监听 页面
tips:网络协议有七层,基于第四层传输层来做流量分发的方案称为4层负载均衡,例如 LVS,而基于第七层应用层来做流量分发的称为7层负载均衡,例如 Nginx。此实验为7层负载均衡
再次在浏览器中输入 负载均衡 的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台 ECS 上(此实验中的服务器内网是172.16.1.9),时间超出后,重新按照权重比例分发
6.然后停止其中一台服务器
7.再次刷新浏览器中 负载均衡 的 IP地址 ,此时,请求发送到 健康检查状态 为 正常 的ECS上
证明,当某一台 ECS 出现异常后,负载均衡会自动将请求发送到健康检查状态正常的 ECS 上。
四、知识扩展
常用的均衡算法有哪些?
NO.1—— Random 随机
这是最简单的一种,使用随机数来决定转发到哪台机器上。
优点:简单使用,不需要额外的配置和算法。
缺点:随机数的特点是在数据量大到一定量时才能保证均衡,所以如果请求量有限的话,可能会达不到均衡负载的要求。
NO.2—— Round Robin 轮询
这个也很简单,请求到达后,依次转发,不偏不向。每个服务器的请求数量很平均。
缺点:当集群中服务器硬件配置不同、性能差别大时,无法区别对待。引出下面的算法。
NO.3—— Weighted Round Robin 加权轮询
这种算法的出现就是为了解决简单轮询策略中的不足。在实际项目中,经常会遇到这样的情况。
比如有5台机器,两台新买入的性能等各方面都特别好,剩下三台老古董。这时候我们设置一个权重,让新机器接收更多的请求。物尽其用、能者多劳嘛!
这种情况下,“均衡“就比较相对了,也没必要做到百分百的平均。
NO.4—— Least Connections 最少连接
这是最符合负载均衡算法的一个。需要记录每个应用服务器正在处理的连接数,然后将新来的请求转发到最少的那台上。
NO.5—— Source Hashing 源地址散列
根据请求的来源ip进行hash计算,然后对应到一个服务器上。之后所有来自这个ip的请求都由同一台服务器处理。