1 简介 HLB vs SLB
软件负载平衡是管理员将网络流量路由到不同服务器的方式。负载均衡器通过检查应用程序级特征(IP 地址、HTTP 标头和请求内容)来评估客户端请求。然后,负载均衡器会查看服务器并确定将请求发送到哪个服务器。
负载均衡器在多个服务器之间分配传入的网络流量,以确保最佳资源利用率、最大限度地减少响应时间并防止服务器过载。在负载均衡方面,存在两种主要类型:软件负载均衡器和硬件负载均衡器。
软件负载均衡器与硬件负载均衡器:选择哪一个?
软件负载平衡通常作为在标准服务器或虚拟机上运行的应用程序交付控制器 (ADC) 的一项功能提供。 硬件负载平衡设备 (HLD) 是运行负载平衡软件的独立硬件。
传统上,它作为成对的一部分部署,以防一个负载平衡设备发生故障。 软件负载平衡提供与 HLD 相同的功能,但它不需要专用的负载平衡设备。负载平衡软件可以在常规服务器甚至虚拟服务器上运行
软件负载均衡器是在通用服务器上运行的应用程序或组件。它们在软件中实现,使其灵活且可适应各种环境。
关键特性
经济高效:软件负载均衡器在现有硬件上运行,因此通常具有较低的前期成本。
组织可以通过软件负载均衡器节省资金,尤其是在使用 LBaaS 的情况下。即使 IT 组织购买了自己的软件负载均衡器,成本通常也被视为 OPEX 而不是 CAPEX,其中硬件负载均衡器将被分类。
可扩展性:通过添加更多虚拟实例,它们可以轻松地进行水平扩展。
与硬件负载平衡设备相比,软件负载平衡器的最大优势是它们的可扩展性。软件负载均衡器可以根据需求添加或删除虚拟服务器,自动实时响应网络流量的波动。
配置灵活性:软件负载均衡器提供高度的可配置性,允许根据特定要求进行微调。
软件负载均衡器也比硬件负载均衡器更灵活,因为它们与各种环境兼容。它们可以进行编程,以便与标准桌面操作系统、云环境、裸机、虚拟服务器和容器配合使用。硬件负载均衡器不那么灵活,因为它们不可编程。
轻松集成:与基于云的环境无缝集成,使其适用于现代、动态的基础设施。
硬件负载均衡器的安装可能很困难且成本高昂,但软件负载均衡器很容易按需部署,从而节省金钱和时间。
安全: 位于客户端和服务器之间的负载平衡软件提供了额外的安全层,能够在可疑数据包到达服务器之前将其拒绝。
SLB非常适合基于云的应用程序和环境。 SLB非常适合动态和快速变化的工作负载。 SLB适用于小规模部署的经济高效解决方案。
2 HLB简介和使用
硬件负载均衡器是专为管理网络流量而设计的专用设备。它们通常作为网络硬件中的独立设备或模块提供。
- 关键特性
专用硬件:硬件负载均衡器附带针对性能进行了优化的专用硬件。 高吞吐量:它们旨在有效处理大量流量。 内置安全功能:许多硬件负载均衡器都包含安全功能,例如防火墙和 SSL 卸载。 易于部署: 它们通常更容易部署,因为它们是专门构建的,并且通常需要最少的配置。
使用场景
非常适合流量负载较重的大规模部署。
在高吞吐量和可靠性至关重要的情况下有效。
非常适合具有严格安全要求的组织。
3 负载均衡算法的分类:静态和动态
负载均衡算法对于优化跨多个服务器的网络流量分配至关重要。这些算法分为两个主要类别:静态和动态。每种类型都采用不同的策略来有效地管理网络流量,从而确保应用程序的高可用性和性能。
负载均衡器使用以下方法之一来确定将网络流量发送到何处:
- 静态负载均衡算法
静态负载均衡算法使用一组预定义的规则来分配网络流量,而不考虑服务器的当前状态。这种方法简单明了,涉及的计算开销较少,因此适用于具有可预测工作负载的环境。以下是一些常见的静态负载均衡方法:
** 轮询:
在池中的所有服务器之间按顺序分配客户端请求,而不管其当前负载或容量如何。循环算法是最简单的负载均衡方法。它只是以相同的顺序在可用服务器列表中移动请求
** 加权轮询:
与 Round Robin 类似,但根据服务器处理流量的能力为每个服务器分配权重。容量较高的服务器接收的请求份额更大。
** IP 哈希:
使用传入请求的 IP 地址的哈希值将请求分配给特定服务器。 此方法可确保来自同一 IP 地址的请求始终定向到同一服务器,从而有助于会话持久性。 其中负载平衡设备为客户端和服务器的源和目标 IP 地址分配唯一的哈希密钥。 这可确保如果同一用户返回并发出另一个请求,则该用户请求将被定向到他们之前使用的同一服务器。此外,服务器会保留之前会话期间输入的任何数据。
- 动态负载均衡算法
动态负载均衡算法根据服务器的当前状态调整流量分配。它们更灵活,可以响应服务器环境中的变化,使其成为动态和不可预测的工作负载的理想选择。以下是几种动态负载均衡技术:
** 最少连接:
将新请求定向到活动连接最少的服务器,假设此服务器具有最大的可用容量。它将请求发送到最不繁忙的服务器,或在给定时刻处理最少工作负载的服务器。
** 加权最少连接:
Least Connection 方法的扩展,该方法还考虑了每个服务器的容量,从而允许根据服务器性能进行更细致的请求分配。该算法更进一步,根据最快的处理速度和最少的活动请求来选择服务器。这种方法可以集成加权轮询负载均衡算法,这些算法始终优先于具有更高容量、计算或内存的服务器。
** 基于资源:
根据对服务器资源(如 CPU 负载、内存使用情况和网络带宽)的实时分析来分配请求。此方法可确保具有最多可用资源的服务器处理传入请求。
** 加权响应时间:
根据服务器的当前连接数和响应时间的组合将流量路由到服务器。响应速度更快且连接较少的服务器将被优先考虑。它根据最快的处理速度和最少的活动请求来选择服务器。 这些算法通过适应网络内的实时条件来提高负载平衡的效率和可靠性。通过选择合适的负载均衡算法,组织可以确保其应用程序和服务的最佳性能和可用性。
4 第 4 层和第 7 层负载均衡器
- 第四层负载均衡
负载平衡通常在第 4 层 (L4) 和第 7 层 (L7) 网络的上下文中讨论。这些术语描述了负载均衡器在网络请求的生命周期内路由流量的时间点。
第 4 层资源在网络传输级别运行。这些负载均衡器根据请求的传输特征(例如使用的 TCP 或 UDP端口)做出路由决策。不考虑特定于请求的数据。
第 4 层负载均衡在 OSI(开放系统互连)模型的传输层运行。该层主要负责端到端的通信。因此,第 4 层负载均衡器负责根据从传输层接收到的信息做出决策,它们的主要关注点在于根据网络级数据路由流量,而无需检查实际数据包的内容。
因此,它们就像高效的交通警察一样,根据数据包的 “地址”(IP 和端口) 引导数据包,而无需深入了解数据包携带的内容的详细信息。 这使得它们能够快速高效地进行基本流量分配,但限制了它们做出更细微的路由决策的能力。
- 第七层负载均衡
第 7 层负载均衡在 OSI(开放系统互连)模型的应用层运行。该层负责直接向最终用户提供网络服务,因此它们包括 HTTP、HTTPS、SMTP 等协议。
因此,第 7 层负载均衡器负责根据应用程序特定的数据(如数据包内容、HTTP 标头、URL 和 Cookie)做出路由决策。
这使得第 7 层负载均衡能够采用更智能和上下文感知的流量分配,因为负载均衡器对应用程序的结构有更深入的了解,因此与第 4 层负载均衡相比,应用程序层(第 7 层)使第 7 层负载均衡能够做出更智能的路由决策。
第 7 层负载均衡位于应用程序层附近。这些负载均衡器可以访问请求中的复杂数据,并使用它来通知特定于工作负载的路由规则。这是可以进行负载均衡的位置,该负载均衡考虑了 HTTP 标头或 Cookie 中的会话 ID。
第 7 层负载均衡功能强大,但相对占用大量资源。它需要解析和检查每个请求的内容,然后才能将其传递到后端。第 4 层负载均衡器基于数据包的性质提供的控制较少,但对吞吐量的影响也相应减少。第 4 层也不会解密流量,因此在此阶段的负载均衡器泄露不会暴露请求数据。
- 工作层次
第 4 层负载均衡器在传输层工作(OSI 模型),其任务是分析 IP 地址、端口和 TCP/UDP 协议等基本信息。这就像一个交通警察根据车道和标志指挥汽车。
在应用程序层运行,因此负责检查更深层次的细节,如 HTTP 标头、URL 甚至内容。将其视为智能助手,读取每个包裹上的目的地并相应地进行路由。
- 决策:
根据服务器负载或响应时间等简单指标做出快速决策
分析更复杂的数据,允许根据特定需求进行更智能的路由,因此通常需要更多时间进行决策
- 性能:
由于其轻量级特性,速度更快,因为它不必深入研究数据包内容,因此非常适合具有基本要求的大流量
由于内容检查,它的处理速度通常略慢,但它提供了精细的控制,这超过了速度差异。
- 成本:
由于其更简单的技术,通常更便宜
由于其先进的功能和处理能力而更昂贵。
- 附加功能:
除基本负载均衡之外的功能有限。
提供内容缓存、安全筛选和应用程序运行状况检查等高级功能,从而提供更多控制和安全性。
- 选择合适的产品:
非常适合具有基本流量的高性能方案,例如分发数据库查询或平衡通用 Web 流量。
非常适合需要基于用户数据、内容类型或特定服务器功能的智能路由的复杂应用程序。
5 选择的时机
使用 Layer-4 而不是 Layer-7:
性能至关重要:第 4 层在传输层运行,仅根据 IP 地址和端口做出决策,从而实现更快的处理速度和更低的延迟。非常适合高流量场景和专注于原始速度的应用程序,如 DNS、视频流和游戏服务器。
简单性是关键:Layer-4 使用更简单的算法,需要更少的计算能力,使其更易于管理和部署。通常首选用于没有复杂要求的基本负载均衡需求。
成本是一个问题:第 4 层硬件和软件由于其更简单的性质而往往更便宜。对于基本的负载均衡需求来说,这是一个经济高效的选择。
使用 Layer-7 而不是 Layer-4:
需要应用程序感知:第 7 层负载均衡器对应用程序流量具有深入的可见性,并且可以根据特定于应用程序的标准做出智能负载均衡决策。
需要基于内容的路由:第 7 层负载均衡器可以根据请求的内容(例如 URL、HTTP 标头或消息负载)将请求路由到特定的后端服务器。这支持复杂的路由策略。
会话持久性是必需的:第 7 层负载均衡器可以根据会话标识符、Cookie 或其他应用程序级属性将客户端请求与特定后端服务器相关联,从而维护会话关联性或粘性会话。
6 小结 HLB与SLB的区别
软件和硬件负载均衡器之间的选择取决于各种因素,例如应用程序的规模、预算限制和特定性能要求。中小型企业可能会发现软件负载均衡器更具成本效益和灵活性,而具有高流量负载的大型企业可能会选择硬件负载均衡器的专用功能。
硬件负载均衡器与软件负载均衡器之间的区别 软件负载均衡器 vs 硬件负载均衡器
特征 软件负载均衡器 硬件负载均衡器
实现 软件实现,通用服务器上运行。 专为负载平衡而设计的专用设备。
成本 由于它们在现有硬件上运行,降低前期成本。 由于专用硬件,前期成本更高。
可扩展性 通过添加更多虚拟实例轻松水平扩展。 可扩展性可能涉及其他硬件组件。
配置灵活性 高度可配置性,适用于动态环境。 在配置方面通常不太灵活。
集成 与基于云的环境无缝集成。 通常需要特定的硬件部署。
吞吐量 与硬件对应项相比,吞吐量可能受到限制。 专为高吞吐量而设计,可以高效处理繁重的流量负载。
安全功能 依赖于额外的安全措施和功能。 通常包括内置安全功能,如防火墙和 SSL 卸载。
易于部署 部署相对容易,尤其是在虚拟化环境中。 通常更容易部署为具有最少配置的专用设备。
使用案例 非常适合基于云的应用程序和动态环境。 在高流量负载和严格安全要求的大规模部署中有效。
负载平衡是计算机网络中使用的一种关键技术,用于在多个服务器之间分配传入流量,以优化资源利用率并确保不间断的服务第 4 层负载平衡和第 7 层负载平衡之间的关键区别在于它们运行的 OSI 模型层以及它们用于做出负载平衡决策的信息第 4 层更以网络为中心,而第 7 层以应用程序。