任何在线服务提供商的两个最关键要求是可用性和冗余。服务器响应请求所需的时间因其当前容量而异。如果即使单个组件发生故障或被请求淹没,服务器也会过载,客户和业务都会受到影响。
负载平衡尝试通过跨多个组件共享工作负载来解决此问题。传入的请求可以从过载的服务器路由到具有更多可用资源的服务器。负载平衡具有从网络交换机到数据库服务器的各种应用程序。
负载平衡如何工作
服务提供商通常使用面向Internet的前端服务器来构建其网络,以便将信息传送到后端服务器或从后端服务器传送信息。这些前端服务器包含负载平衡软件,可根据资源可用性将请求转发到其中一个后端服务器。负载平衡软件包含内部规则和逻辑,用于确定转发每个请求的时间和位置。
以下是负载平衡如何工作的概述:
用户打开Google.com等网页
前端服务器接收请求并确定将其转发的位置。可以使用各种算法来确定转发请求的位置,其中一些更基本的算法包括随机选择或循环。如果没有可用的后端服务器,则前端服务器执行预定的操作,例如向用户返回错误消息。
后端服务器处理请求并生成响应。同时,后端服务器定期向负载均衡器报告其当前状态。
后端服务器向前端服务器返回响应,然后将其转发给用户。
如果一切顺利,无论服务提供商的网络状态如何,用户都将及时收到响应。如果至少有一个前端服务器和至少一个后端服务器可用,则正确处理用户的请求。
负载平衡示例
Google的计算引擎基于多种Google产品使用的相同负载平衡技术,包括Gmail,搜索和Google广告。Compute Engine会定期检查所有后端服务器的状态,并根据其当前负载将其标记为健康或不健康。
当用户连接到Google服务时,Compute Engine会将请求转发给健康的服务器。然后,响应从健康的服务器通过计算引擎转发回用户。同时,不健康的服务器被修复,更换或脱机。
通过负载平衡,可以升级服务器,而不会中断最终用户的体验。Google和其他服务提供商通过波浪升级其后端服务器来推动应用程序更新。例如,当服务器脱机升级时,其他服务器负责工作负载,然后依次更新。
在计算引擎中,使系统脱机以进行维护和升级的能力称为“跛鸭模式”。这就是即使在活动会话之间,Google的网络产品也可以无缝更新的方式。
负载平衡的好处
负载平衡使系统管理员可以更轻松地处理传入请求,同时减少用户的等待时间
用户体验更快,不间断的服务。用户不必等待单个苦苦挣扎的服务器完成其先前的任务。相反,他们的请求会立即传递给更容易获得的资源。
服务提供商可以减少停机时间并提高吞吐量。即使是完整的服务器故障也不会影响最终用户体验,因为负载均衡器只会将其路由到健康的服务器。
系统管理员体验较少的故障或压力组件。负载平衡有几个设备执行一些工作,而不是单个设备执行大量工作。