现代系统变得越来越复杂,但这种复杂性确保了处理大量的网络流量和请求。
简单来说,负载均衡器的主要思想就像它的名字一样,它跨服务器提供直接的客户端请求。换句话说,负载均衡器是在多台服务器之间分配网络或应用程序流量的系统或设备。
有两种基本策略用于处理增加的负载并提高计算环境中的性能,特别是在服务器和应用程序方面。
- 横向扩展也称为水平扩展
- 扩大规模也称为垂直扩展
现代分布式系统具有扩展策略,该策略要求增加节点/单元。这意味着您需要创建或复制整个节点,而不是节点/单元的一部分。例如,在我们的例子中,我们有 1 台服务器,它每分钟处理 10000 个请求,但如果我们想增加这些请求,我们该怎么做?简单来说,我们将增加服务器的一部分(RAM、CPU 等)。所以,这意味着扩大规模!但扩展意味着我们不会增加服务器的一部分。相反,我们将添加一台新服务器(或节点/单元)。
因此,在扩展负载平衡器的情况下,它会通过指定的算法/方法为相同的服务器提供流量平衡。
负载均衡器如何工作?
-
假设我们使用扩展策略,并且有三台执行相同任务的服务器。当客户端向服务器发出请求(例如通过网络发送数据)时,负载平衡器是第一个接触点。负载平衡器位于服务器前面并处理请求。然后,它根据服务器的当前状态选择其中一台服务器并将请求转发到该服务器。
-
当客户端发送请求以访问服务(如网页或应用程序)时,该请求将被定向到负载均衡器,而不是直接定向到任何服务器。负载均衡器位于服务器前面,拦截传入请求并充当流量管理器,确定处理请求的最佳服务器。
-
负载均衡器检查每台服务器的当前状态,包括每台服务器上的活动连接数、每台服务器处理的当前负载或流量以及每台服务器的整体性能和健康状况。根据此评估,负载均衡器选择最合适的服务器。例如,如果服务器 A 的活动连接数少于服务器 B 和 C,则负载均衡器将选择服务器 A。
-
然后,负载均衡器将客户端的请求转发到所选的服务器。服务器处理请求并准备响应。服务器将响应发送回负载均衡器,然后负载均衡器将此响应转发给客户端。客户端认为这种交互就像直接与服务器通信一样。
-
通过在多台服务器之间分配客户端请求,负载平衡器可确保任何一台服务器都不会超负荷。这有助于保持服务的高性能、可用性和可靠性。
他们提供什么?
- 高可用性:负载平衡器确保如果一台服务器出现故障,另一台服务器可以接管。这意味着即使其中一台服务器出现问题,服务仍可正常运行。
- 扩展:当更多人使用该服务时,负载平衡器会通过将流量分散到多个服务器来提供帮助。这样,该服务就可以处理更多用户,而不会变慢或崩溃。
- 可靠性:负载平衡器会检查服务器的运行状况,并仅向运行良好的服务器发送请求。这可确保用户每次使用该服务时都能获得流畅、可靠的体验。
- 安全性:负载平衡器可以通过分配流量并隐藏实际服务器以防止直接访问来帮助防止攻击。这使得攻击者更难瞄准特定服务器。
负载均衡器的类型
有不同类型的负载平衡器可以帮助管理服务器的流量。
- 硬件负载平衡器:这些是物理设备。它们位于您的服务器机房并处理流量。它们速度快、功能强大,但价格昂贵。
- 软件负载平衡器:这些程序在常规服务器上运行。它们的作用与硬件负载平衡器相同,但通常更便宜且更易于更新。
- 第 4 层负载均衡器(传输层):这些负载均衡器在网络的传输层工作。它们根据 IP 地址和端口号等数据做出决策。它们快速而简单。
- 第 7 层负载均衡器(应用层):这些负载均衡器在应用层工作。它们根据请求的内容(如 URL 或 Cookie)做出决策。它们更灵活,可以处理更复杂的任务。
简单来说,硬件负载均衡器是物理设备,而软件负载均衡器是程序。第 4 层负载均衡器使用 IP 地址等基本数据,而第 7 层负载均衡器使用 URL 等更详细的数据。
负载平衡算法/方法的类型
负载均衡器使用不同的算法/方法在服务器之间共享流量。以下是一些常见的算法/方法。
- 循环:此方法将流量逐一发送到一行中的服务器。每台服务器轮流一次,因此工作负载均匀分布。
- 最少连接:使用此方法,流量将流向当前使用人数最少的服务器。通过向不太繁忙的服务器发送更多流量,它有助于平衡负载。
- IP 哈希:根据客户端的 IP 地址将流量发送到服务器。这样,同一个客户端总是会转到同一个服务器,这对某些应用程序很有帮助。
- 其他:还有一些算法/方法,例如加权轮询,其中一些服务器根据其实力获得更多流量。另一种方法是随机两选一,即在两台服务器之间随机选择以平衡负载。
简单来说,负载均衡器使用这些方法来确保服务器保持平衡,并且每个人都能获得良好的服务体验。