传统上,我们需要一个web服务器来为我们的客户提供和交付服务。通常,我们要考虑是否可以拥有一个非常强大的Web服务器,它可以做任何我们想做的事情,例如提供任何服务和为尽可能多的客户提供服务。
但是,由于只有一个Web服务器,因此存在两个主要问题。第一个是服务器总是有限制。如果您的业务蓬勃发展,许多新用户将访问您的网站,因此有一天您的网站肯定会达到您的容量限制,并将为您的用户提供非常不令人满意的体验。
此外,如果只有一个 Web 服务器,则可能会发生单点故障。例如,您的服务器可能会发生断电或网络连接问题。如果您的单个服务器出现故障,您的客户将完全停止服务,并且您无法再提供服务。当您只有一个Web服务器时,即使它非常强大,您也可能会遇到这个问题。87cloud详细阐述下负载均衡的作用!
负载均衡如何提供帮助?
现在您可能想知道如何扩展Web服务器的功能。通常,当业务持续增长时,您需要再添加一台服务器。但是,如果再添加一台服务器,最终用户如何知道他们需要访问哪个服务器?为了获得更好的用户体验,最终用户不应感受到后端设置的复杂性。
那么,我们可以在终端用户和后端服务器之间放什么样的服务或设备呢?
答案是负载平衡设备或软件。我们可以把它放在中间,以便代理可以接受来自最终用户的请求,并使用特定的机制或算法将服务分发到后端服务器,以平衡负载。这就是它被称为负载均衡器的原因。它不仅可以解决单点故障和服务上限的问题,还可以为最终用户带来始终如一的满意用户体验。
现在我们来看看阿里云是如何通过负载均衡 (SLB) 提供负载均衡服务的。阿里云负载均衡是一种流量分配控制服务,可以根据配置的转发规则,在多个弹性计算服务(ECS)实例之间分配传入的流量。
使用负载均衡的优势
负载均衡有四大特点。第一个是高可用性。如果您将大部分SLB设置在不同地域,并且每个地域有两台服务器,则默认情况下,负载均衡将部署在一个可用区中,主实例部署在另一个可用区中。这显示了负载均衡的高可用性特性。
此外,使用SLB,您将获得可扩展性,因为当您在SLB后面扩展时,最终用户将永远不会知道并感受到任何湍流。此外,与任何物理硬件成本相比,负载均衡服务的成本更低。
最后一个特点是安全性:负载均衡是阿里云网络服务之一。默认情况下,它可以利用提供的大多数安全产品和功能来保护您的业务。对于DDoS攻击,负载均衡具备基本的DDoS防护能力。
负载均衡的内部工作原理
我们来谈谈SLB的基本架构。现在,我们有阿里云 SLB 位于最终用户和后端服务器之间,即 ECS。SLB由三个主要部分组成;实例、侦听器和服务器。
作为最终云用户,您可以在一个区域中创建和放置两个实例。对于每个负载均衡实例,您需要创建并放入多个侦听器。对于后端,您需要告诉负载均衡器您的后端服务器是什么,您希望将多少台服务器置于负载均衡的保护之下。因此,这些是您在创建 SLB 并尝试对其进行配置时需要考虑的三个主要组件。
负载均衡有两种实例,基于其连接器功能。第一个我们调用了公网SLB。根据名称,可以看出这是可以与公网IP地址组合的负载均衡,付费模式为按量付费。这意味着您需要为实例租赁和公共流量付费。如果您使用额外的卷,则需要为额外的卷付费。到目前为止,这仅在您可以为公网负载均衡选择的即用即付模式下。
专网负载均衡是完全免费的。根据名称,您可以判断它只能在专用网络环境中使用,我们永远不会为其分配公共地址IP。我们使用公有和私有 SLB 来增强功能。我们希望使用公共负载均衡作为从 Internet 传入的用户请求,但在内部,我们希望使用私有 SLB 将不同的流量或请求转发到不同的后端服务器集。双层架构更具可扩展性和弹性。
自定义负载均衡
当我们谈论组件监听器时,我们需要注意以下四种配置。第一个是路由规则,包括使用哪种调度机制将流量转移到后端服务器。
另一个功能称为会话粘性。这意味着有时,如果您不希望 SLB 中断会话,而是将同一会话转发到另一台服务器,只需单击部分粘性选项即可启用它,然后负载均衡器将记住并继续将包从同一会话发送到同一后端用户,直到会话中断。
下一个功能是健康检查配置。对于负载均衡器来说,它不仅仅是试图盲目转发请求,而是实际上有一种机制来通过不同的协议检查后端服务器。如果发现服务器已关闭或未处于正常状态,负载均衡将停止向不正常的服务器发送请求,以便最终用户不会感到响应湍流。
此外,您还可以使用负载均衡配置来定义峰值带宽。这意味着您可以对负载均衡进行上限,以确保它不会超过峰值带宽。但是,无论您在后端有多少个侦听器,它们都将共享相同的峰值带宽。
我刚刚提到,对于监听器,您需要配置请求调度机制。因此,我们支持三种缩放算法。第一个是最直接的一个,称为循环。该请求将只是一个接一个地发送到服务器。这是一个非常易于理解的机制。
使用轮循机制,我们可以设置另一种称为加权循环(WRR)的机制。我们仍然可以使用轮循机制,但根据您设置后端服务器的不同方式,权重最高的服务会获得最多的请求。
最后一个称为加权最小连接 (WLC)。不仅基于权重,还基于SLB发送的最后一次请求以及每个服务器获得的连接的评估,至少一个服务器将获得新请求。