ECS上云入门三部曲:课时6:超大流量网站的负载均衡(二)
课时6:超大流量网站的负载均衡(二)
二、负载均衡的工作原理
然后用户可以直接通过浏览器访问我们的网页,通过网络连接到这台物理服务器来查看我们的网站。
然而,随着移动互联网的迅猛发展,用户使用各种终端设备访问我们的网站,这会导致服务器承受巨大的压力,超出了一台服务器的处理能力。这种情况下,服务器可能会崩溃,导致整个服务中断,这将给企业带来损失,并导致用户流失。
为了避免这种情况,企业需要增加服务器数量,例如,购买两台或更多服务器,以满足用户需求。
但是,当用户发送请求时,应该将请求发送到哪台服务器可能会变得复杂,这就需要一个统一的入口来分发请求,而不是像打电话一样点对点地联系不同的服务器。
为了解决这个问题,我们引入了负载均衡服务器,它充当统一入口的角色。所有用户的请求首先到达负载均衡服务器,然后由负载均衡服务器将请求转发到后端的多台服务器上,以实现负载均衡和业务均衡的目标。
负载均衡服务器就像一个代理,将前端的请求分发到后端,根据服务器的配置和能力进行智能转发。这就是负载均衡的基本工作原理。
三、负载均衡的基本功能
在这里,我们主要以阿里云负载均衡(ALB)为例来详细介绍其基本功能。
首先,让我们开始探讨它的主要功能。
阿里云负载均衡(ALB)首先支持公网和私网类型的负载均衡。它提供了流量分发、流量调度、会话保持和会话检查等功能。
首先,让我们讨论流量分发。ALB支持4层和7层的负载均衡服务,可以根据需求将流量转发到后端服务器。
在流量调度方面,ALB支持多种转发方式,包括加权轮询、最小连接数等,可以根据实际情况配置。
在会话保持方面,ALB可以在会话生命周期内确保来自同一客户端的请求被转发到同一台后端服务器。
对于健康检查,它可以监测后端服务器的健康状态,并在服务器异常时进行屏蔽。一旦服务器恢复正常,或者服务器内部的业务恢复正常,ALB会自动解除屏蔽,重新开始将流量转发到该服务器。
接下来,让我们详细了解一些流量调度的工作原理。
首先是轮询模式,它将请求均匀地分发到后端服务器上,就像轮流服务每台服务器一样。例如,第一次请求被发送到服务器1,第二次到服务器2,以此类推。这种方式称为轮询。
除了轮询之外,我们还可以使用加权轮询,它允许为不同的后端服务器分配不同的权重值,以实现不同服务器的负载均衡。
首先,让我们来看一下会话保持的效果。如果启用了会话保持,当用户首次访问时,请求会被分发到服务器1,第二次请求会被分发到服务器2,第三次请求会被分发到服务器3,以此类推。这意味着在一定时间内,同一用户的请求将持续发送到同一台后端服务器,以保持会话状态。这对于需要保持用户会话的应用非常有用。
会话保持有两种方式,一种是4层的TCP协议,基于相同的IP地址进行请求转发,另一种是7层的HTTP协议,基于相同的Cookie进行请求转发。在7层的情况下,只有当请求的Cookie相同时,请求才会被发送到相同的服务器。
接下来,让我们来看权重设置。权重设置是在轮询的基础上引入的,允许为不同的后端服务器分配不同的权重值。
例如,对于三台服务器,如果分别设置权重值为20、30和50,那么大致上会有20%的流量被分发到服务器A,30%的流量被分发到服务器B,50%的流量被分发到服务器C。这可以用于更合理地分配负载,使性能更高的服务器可以处理更多的请求。
此外,通过将某个服务器的权重值设为零,可以使其不再接收流量,从而实现优雅的服务器下线和更新。这样,您可以在不停机的情况下进行服务器的更新和维护。