网络负载均衡 Load Balancing

英文原文链接:https://www.educative.io/courses/grokking-the-system-design-interview

网络负载均衡

  • 负载平衡的好处 Benefits of Load Balancing
  • 负载均衡算法 Load Balancing Algorithms
  • 冗余负载均衡器 Redundant Load Balancers

负载平衡器(LB)有助于在服务器群集之间分配流量,以提高应用程序,网站或数据库的响应速度和可用性。LB在分发请求时还跟踪所有资源的状态。如果服务器不可用于接受新请求,服务器无响应或错误率升高,则LB将停止向该服务器发送流量。

通常,负载平衡器位于客户端和服务器之间,接受传入的网络和应用程序流量,并使用各种算法在多个后端服务器之间分配流量。通过在多台服务器之间平衡应用程序请求,负载均衡器可减少单个服务器的负载,并防止任何一台应用程序服务器成为单点故障,从而提高了整体应用程序可用性和响应能力。

为了充分利用可伸缩性和冗余性,我们可以在三个位置添加LB:

  • 在用户和Web服务器之间
  • 在Web服务器和内部平台层之间,例如应用程序服务器或缓存服务器
  • 在内部平台层和数据库之间。

在这里插入图片描述

负载平衡的好处 Benefits of Load Balancing

  • 用户体验更快,不间断的服务。不必等待单点陷入困境的服务器来完成其先前的任务。而是将其请求立即传递给更容易获得的资源。
  • 服务端停机时间更少,吞吐量更高。甚至单机的服务器故障不会影响用户的体验,因为负载均衡器会简单地将其路由到运行状况良好的服务器。
  • 负载平衡使系统管理员可以更轻松地处理传入的请求,同时减少用户的等待时间。
  • 智能负载均衡器提供了更多好处诸如预测分析之类的,可以在流量瓶颈发生之前就确定流量瓶颈。智能负载均衡器提供了可行的见解。这些是自动化的关键,可以帮助制定业务决策。
  • 系统管理员遇到的故障或压力较小的组件更少。负载平衡不是由单个设备执行大量工作,而是由多个设备执行一点工作。

负载均衡算法 Load Balancing Algorithms

负载均衡器如何选择后端服务器的两个因素:

  1. 首先确保他们选择的服务器实际上对请求做出了适当的响应。
  2. 使用预先配置的算法从运行状况良好的服务器集中选择一个。

对于第一个因素:
运行状况检查 Health Checks -负载平衡器应仅将流量转发到“运行状况良好”的后端服务器。为了监视后端服务器的运行状况,“运行状况检查”会定期尝试连接到后端服务器,以确保服务器正在侦听。如果服务器无法通过运行状况检查,则会自动将其从池中删除,除非再次响应运行状况检查,否则流量不会转发到该服务器。

对于第二个因素,不同的需求的负载平衡算法:

  • 最少连接方法:流量定向到活动连接最少的服务器。当存在大量不固定分布在服务器之间的持久客户端连接时,此方法非常有用。
  • 最短响应时间方法:流量定向到活动连接最少,平均响应时间最短的服务器。
  • 最小带宽方法:选择当前服务的流量最小的服务器(以每秒兆位(Mbps)为单位)。
  • 循环方法:在服务器列表中循环,并将每个新请求发送到下一个服务器。当到达列表末尾时,它从头开始。当服务器规格相同且持久连接不多时,此功能最为有用。
  • 加权循环法:加权循环调度旨在更好地处理具有不同处理能力的服务器。每个服务器都分配有权重(指示处理能力的整数值)。权重较高的服务器要比权重较小的服务器优先获得新的连接,并且获得更多的连接。
  • IP哈希:将计算客户端IP地址的哈希以将请求重定向到服务器。

冗余负载均衡器 Redundant Load Balancers

负载均衡器可能有单点故障;为了克服这个问题,可以将第二个负载均衡器连接到第一个负载均衡器以形成集群。每个LB监视另一个LB的运行状况,并且由于它们均具有服务流量和故障检测的能力,因此如果主负载平衡器发生故障,则第二个负载平衡器将接管。

猜你喜欢

转载自blog.csdn.net/weixin_43946031/article/details/114276138