Load Balancing

菜单图标

Load Balancing

在本指南中,了解负载平衡如何优化网站和应用程序性能。

什么是负载平衡?

随着应变在网站或业务应用程序增加时,最终,单个服务器无法支持完整的工作负载。为了满足需求,组织将工作负载传播到多个服务器上。称为“负载平衡”,此操作可防止单个服务器变得过度劳累,这可能导致它减慢,删除请求,甚至崩溃。

负载平衡让您均匀分发 网络 流量以防止通过重载特定资源引起的故障。该策略提高了应用程序,网站,数据库和其他计算资源的性能和可用性。它还可以快速准确地帮助处理用户请求。

从用户的角度来看,负载均衡用作坐在客户端和一组服务器之间的不可见的辅助商,确保连接请求不会丢失。如果没有负载平衡,应用程序,网站,数据库和在线服务可能会在需求过高时失败。单个高流量网站可以同时领域数百或数千个用户请求。它需要多个服务器,以准确地填充带有所请求的信息的网页,包括文本,照片,视频和音频流。

您经常在运行高流量网站的服务器场中使用负载平衡;它也用于 域名系统(DNS) 服务器,数据库和文件传输协议(FTP)站点。如果单个服务器处理过多的流量,它可能会表现不足或最终崩溃。通过在一组服务器上均匀地路由用户请求,负载均衡器最小化停机时间的可能性。如果一个人失败,它们通过重新路由到组中的其他服务器来执行此操作。在向服务器池添加新服务器时,负载均衡器会在流量分发过程中自动将其包含在内。

负载平衡充当“交通警察”,使订单成为可能的混乱情况。在某些环境(例如应用程序和虚拟基础架构)中,负载平衡也执行健康检查,以确保可用性并防止可能导致停机的问题。负载平衡甚至可以在更易于管理的服务器上提供集中安全性。

负载均衡执行这些关键任务:

  • 管理交通尖峰并阻止单个服务器上的尖峰
  • 最小化用户请求响应时间
  • 确保物理和虚拟的计算资源的性能和可靠性
  • 为计算环境添加冗余和弹性

怎么运行的

负载平衡器使用预定模式,称为负载平衡算法或方法。这确保了没有一个服务器必须处理更多的流量而不是过程。不同的算法使用不同的技术管理进程。因此,您有多种选项可以选择决定使用什么类型的负载均衡器使用。

以下是负载均衡器如何工作的基础:

  1. 客户端(例如应用程序或浏览器)接收请求并尝试与服务器连接。
  2. 负载均衡器接收该请求,并且基于算法的预设模式,它将请求路由到服务器组(或场)中的一个服务器。
  3. 服务器通过负载均衡器接收连接请求并响应客户端。
  4. 负载均衡器接收响应并将客户端的IP与所选服务器的IP匹配。然后它将数据包转发到响应。
  5. 如果适用,负载均衡器处理SSL卸载,这是使用安全套接字层加密协议解密数据的过程,以便服务器不必执行。
  6. 过程重复,直到会话结束。

好处

如果您的组织运行高流量网站和接收大量查询的应用程序或数据库,则负载平衡通过优化资源使用,数据传递和响应时间来提供多个优势。在高流量环境中,负载平衡是使用户请求顺利准确地进行的。他们备用用户争吵的恐怖与无响应的应用和资源。

负载平衡也在防止停机时间和简化安全性方面发挥着关键作用,从而减少了生产率损失的可能性以及为您的组织损失利润。

负载平衡的其他优势包括以下内容:

  • 灵活性: 除了引导流量以最大限度地提高效率,负载平衡还可提供添加和删除服务器的灵活性,因为要求指示。它还可以执行服务器维护而不会导致用户的中断,因为在维护期间流量被重新排出到其他服务器。
  • 可扩展性: 随着应用程序或网站的使用增加,交通的提升可能会阻碍其性能,如果没有正确管理。通过负载平衡,您可以获得添加物理或虚拟服务器以适应需求而不会导致服务中断。随着新服务器在线来,负载平衡器识别它们并无缝地在过程中包含它们。这种方法优选地将网站从过载的服务器移动到新的服务器,这通常需要一定量的停机时间。
  • 冗余: 在分发一组服务器上的流量时,负载均衡提供内置冗余。如果服务器发生故障,则可以自动将负载重新绑定到工作服务器以最大限度地减少对用户的影响。

应用负载均衡

应用负载平衡通过在多个目标中分发用户请求来执行经典负载均衡器的功能。但与传统负载均衡器不同,只使用IP地址工作,应用程序负载均衡器专注于内容,考虑到URL Cookie和HTTP标头内容,以确定发送每个用户请求的目标。

要实现应用程序负载均衡,开发人员代码“侦听器”进入应用程序,以对特定事件(例如用户请求)作出反应。侦听器基于每个请求的内容将请求路由到不同的目标(例如,查看应用程序的一般请求,要加载特定应用程序的请求等)。

应用负载均衡器还通过定期检查每个目标来执行健康检查,以确保它没有遇到任何问题。根据结果​​,负载均衡器将流量路由到健康目标,以确保满足用户请求,而不是由不健康的目标陷入困境。

硬件与软件负载平衡

选择负载均衡器时,您可以在硬件和软件版本之间进行选择。

硬件负载平衡器

硬件负载均衡器由物理硬件组成,例如设备。这些直接流量根据与服务器,处理器利用率和服务器性能的现有连接数量的标准。

硬件负载平衡器包括需要维护和更新的专有固件,因为新版本和安全补丁发布。硬件负载平衡器通常提供更好的性能和控制 - 同时提供kerberos身份验证和SSL硬件加速等更大的功能范围 - 但需要一定程度的熟练程度,以进行适当的管理和维护。由于它们是基于硬件的,因此这些负载均衡器不太灵活且可扩展,因此存在过度配置硬件负载均衡器的趋势。

软件负载平衡器

软件负载均衡器通常比硬件版本更易于部署。它们还倾向于更具成本效益和灵活性,并且它们与软件开发环境结合使用。该软件方法为您提供了将负载均衡器配置为环境的特定需求的灵活性。灵活性的增强可能性可能具有更多工作来设置负载平衡器的成本。与硬件版本相比,该软件版本提供了更多的封闭盒方法,软件平衡器为您提供更改和升级的自由。

软件负载均衡器可以以预先包装的虚拟机(VM)为单形。 VMS将为您提供一些配置工作,但可能无法提供硬件版本可用的所有功能。

软件负载均衡器可作为可安装的解决方案提供,需要配置和管理或作为服务作为服务(LBAAS)的云服务负载均衡器。选择后者备忘,您将您免于常规维护,管理和升级本地安装的服务器;云提供商处理这些任务。

算法

要执行工作,负载平衡器使用算法或数学公式 - 制定关于哪个服务器接收每个请求的决定。算法各不相同,考虑是否在网络或应用层上路由流量。

负载平衡算法落入两个主要类别加权和不加权。加权算法使用基于权重或偏好的计算来进行决策(例如,具有更多权重接收更多流量的服务器)。该算法不仅考虑了每个服务器的权重,还考虑了组中所有服务器的累积权重。

非加权算法不做这种区别,而不是假设所有服务器具有相同的容量。这种方法加快了负载平衡过程,但它没有为具有不同容量级别的服务器提供住宿。结果,非加权算法不能优化服务器容量。

方法

每个负载均衡方法都依赖于一组标准来确定服务器场中的哪个服务器获取下一个请求。有五种常见的负载均衡方法:

  • 循环: 这是默认方法,它函数就像众所周知一样。负载均衡器以旋转方式指导请求,在组中的第一台服务器处于Firect请求,然后移动到底部,从而等待其转接再次调用。此技术确保每个服务器处理大量相同数量的连接。
  • 加权循环: 通过这种方法,每个服务器被分配权重(或偏好),通常以其容量相称。权重越高,服务器接收的请求越多。例如,分配了两个权重值的服务器接收的加倍服务器的请求分配了一个值。
  • 粘性会议: 此方法也称为会话持久性,此方法将特定客户端和服务器链接在会话的持续时间内。负载平衡器通过cookie或通过跟踪用户的IP地址来识别用户属性以使链接。建立链接后,向用户发送到同一服务器,直到会话结束。这还提高了用户体验,同时还优化了网络资源。
  • 最小连接: 此方法假定所有请求都生成相同数量的服务器负载。因此,处理最低次数的服务器接收到的下一个请求。
  • IP哈希: 该算法基于客户端和服务器的源和目标IP地址创建唯一的哈希键。该密钥用于路由请求,并启用与同一服务器一起重新建立丢弃的连接。

负载平衡在云中

负载均衡可以参考平衡基于云的工作负载或负载均衡器的过程,这些过程是基于云的自身。在云环境中,云平衡函数与其他环境中的相同相同,除了它与与公司基于云的工作负载相关的流量以及它们跨多个资源(例如服务器组和网络)有关。

平衡云工作负载与任何其他上下文中的平衡负载一样重要。目标最终是高可用性和性能。由于交通分布,工作负载越好,环境的可能性越小就是遭受中断。

基于云的负载均衡器通常提供支付的AS-AS-Service模型,支持高级别的弹性和灵活性。它们提供了许多功能和福利,例如健康检查和控制谁可以访问哪些资源。这取决于您使用它们的供应商和环境。云负载均衡器可以使用一个或多个算法支持方法,例如循环,加权循环,以及最小连接 - 以优化流量分布和资源性能。

Docker. Swarm.负载平衡

如果您正在使用多个Docker容器运行环境,则可以从应用负载平衡中受益 容器. Docker. 是一个开源开发平台,使用容器包装应用程序在运行Linux的系统中的可移植性。 Docker. Swarm. 是开发人员和管理员使用的群集和调度工具,用于创建或管理作为单个虚拟系统的Docker节点群集。

在Docker Swarm中,负载平衡余额和群集中任何容器之间的节点之间的路由请求。 Docker Swarm拥有一个本机负载均衡器设置,以便在每个节点上运行,以处理丢弃请求以及节点之间的内部请求。

根据拓扑,您可以在自己的单节点蜂窝上设置Docker Swarm外部的负载均衡器,以路由源自群集外部的请求。本机Docker Swarm Balancer是一个基本的第4层版本。因此,它可能无法提供您所需要的所有功能,例如SSL / TLS终止,访问控制和授权,基于内容的路由,以及重写和重定向。在集群外添加均衡器有助于解决该问题。

对于Docker Swarm的更深层次潜水以及它如何比较 Kubernetes., 看 ”Docker. Swarm.与Kubernetes:比较。“

负载平衡与群集

负载平衡与群集共享一些常见的特征,但它们是不同的进程。群集由一组资源组成,例如服务器,用于数据存储或在IT环境中运行特定系统。有些集群使用 Kubernetes. 开源平台以更有效地安排和分配容器。

群集提供冗余并提高容量和可用性。集群中的服务器彼此意识到并朝着共同目的而共同努力。但是通过负载均衡,服务器彼此不知道。相反,它们对从平衡器接收的命令作出反应。您可以使用群集使用负载均衡,但是负载平衡也适用于涉及共享常用目的的独立服务器 - 运行网站,业务应用程序,Web服务或其他IT资源的情况。

开源工具

开源负载均衡器是一个软件负载均衡器,您可以免费下载。开源负载均衡器如果您在有限预算中运营,则提供可理想的选项,但要求您具有技术娴熟的开发和运营团队,具有部署和技能来部署和操作解决方案并管理必要的软件许可证。

各种开源负载均衡器可供下载,每个都具有不同的功能和服务器兼容性。开源负载均衡器包括 中微子 (链接驻留在IBM.com之外), 凝血胶 (链接驻留在IBM.com之外),LoadMaster by Kemp. (链接驻留在IBM.com之外),以及基于Linux的 跷跷板 (链接驻留在IBM.com之外)。一些,如Loadmaster和Neutrino,提供了具有额外功能的免费版本和基于费用的商业版本。如果您正在考虑开源路由,请务必在做出决定时审核与特定服务器的功能和兼容性。

负载平衡和网络

当应用于时 网络,负载平衡均匀地将服务器和客户端分发到网络中的其他资源。网络负载均衡器使用TCP / IP协议在广域网(WAN)链路上分发流量。这支持网络连接会话,例如电子邮件,Web和文件传输。通过这样做,负载平衡将带宽增加到网络上的所有用户。这最终提高了对他们的要求的响应能力。

与其他负载均衡器一样,当网络负载均衡器接收到连接请求时,它选择要进行连接的目标。某些类型的连接,例如浏览器连接到网站时,需要单独的会话用于网页上的文本,图像,视频和其他类型的内容。负载均衡处理这些并发会话以避免任何性能和可用性问题。

网络负载平衡还提供网络冗余和故障转移。如果WAN链路遭受中断,则冗余使得可以通过辅助链路访问网络资源。连接到负载均衡器的服务器并不一定在同一位置,但如果正确架构,这对负载均衡器进行工作的能力没有带来。

网络负载平衡提供业务连续性和故障转移,确保无论地理上分散您的组织的劳动力如何,您都可以保持可接受的可用性和性能。

有关网络的概述,请参阅“网络:完整指南。“

IBM Cloud Internet服务 提供有关全局负载平衡的更多信息。

VMware.

在一个 VMware. - 您虚拟环境,您可以设置负载平衡和故障转移策略,以管理网络适配器之间的流量分配。适配器是在计算机和网络之间建立连接的软件过程,以及LAN和WAN之间的连接。负载平衡策略指示物理开关来控制传入流量。负载平衡策略也控制传出流量。它通过将与在虚拟交换机上的交换机或端口组链接的网络适配器之间的流量分发来实现这一点。

数据库

在一个 数据库 背景信息,负载平衡涉及数据库查询的分布,这些数据库查询被路由到多个服务器以维持偶数流程,并避免如果存在大量的并发请求,则避免可能发生的问题。数据库负载平衡的好处与任何其他环境中的那些相同,例如应用程序,网络或Docker Swarm - 包括改进的可用性和性能和更快的响应时间。

数据库负载平衡通过确保在完成事务之前确保查询不会失败,有助于数据完整性。如果发生故障转移,则将数据完整性维护,因为新主服务器接管查询而不让其死亡。通过最小化由于服务器故障而趋于发生的错误,此过程会增加数据库的总体可靠性。

负载均衡器和IBM云

IBM提供了几个负载平衡器 帮助您提高正常运行时间并保持业务连续性。 IBM负载均衡器允许您通过添加或删除服务器来向上或向下缩放应用程序,而无需任何主要的服务中断。这有助于确保用户在没有问题的情况下需要它们时可以访问应用程序:

  • IBM Cloud Load Balancer: 此负载均衡器提供弹性AS-Service模型,提供了一个图形界面,用于监控服务器运行状况和SSL卸载以进行传入流量。
  • CitrixNetScaler®设备: 此负载均衡器平台提供高级功能,以支持高性能需求。
  • IBM Cloud Kubernetes服务 LoadBalancer: 该负载平衡器是开发的,用于与之结合使用 IBM Cloud Kubernetes服务.

探索IBM各种负载均衡器的功能和优势.

注册IBMID和 创建IBM云帐户.