算法|服务器负载均衡是什么以及工作原理和算法

算法|服务器负载均衡是什么以及工作原理和算法

负载平衡是各种分布技术的总称 , 这些技术有助于在网络内的不同服务器之间分散流量和工作负载 。 用人的话说 , 这个想法很简单:工作的人越多 , 工作完成得越快、效率越高 , 每个人要做的工作就越少 。
当应用于计算机网络时 , 这些“社区劳动”原则变得非常有价值 , 因为它们有助于提高整体计算效率——最大限度地减少停机时间并提高整体吞吐量和性能 。
随着越来越多的计算在线完成 , 负载平衡具有更广泛的意义 。全局服务器负载均衡 在原理上是一样的 , 但它的实现并不局限于一个本地网络 。 工作负载仍然是分布式的 , 但它分布在全球范围内 , 而不仅仅是跨数据中心 。
因此 , 现代解决方案面临新的挑战 , 因为它们不仅需要考虑单个服务器集群 , 还需要考虑通信参数(例如链接质量)和远程请求者的地理位置 。

如今 , 随着越来越多的在线企业寻求利用内容分发网络(CDN) , 负载平衡已成为大多数内容分发任务的关键组成部分 。
负载均衡器如何工作?
如上所述 , 负载平衡使网络管理员能够将工作分散到多台机器上 , 从而更有效地利用可用资源 。
为了实施此类解决方案 , 管理员通常为所有请求都将到达的给定应用程序、任务或网站定义一个 IP 地址和/或 DNS 名称 。 这个IP地址或者DNS名 , 当然就是负载均衡服务器 。
然后 , 管理员将在负载平衡服务器中输入所有实际服务器的 IP 地址 , 这些服务器将分担给定应用程序或任务的工作负载 。 这个可用服务器池只能通过负载平衡器在内部访问 。
最后 , 需要部署您的负载均衡器——或者作为代理 , 它位于您的应用服务器和全球用户之间并接受所有流量 , 或者作为网关 , 将用户分配到服务器一次 , 然后单独进行交互 。
一旦负载平衡系统就位 , 对应用程序的所有请求都会到达负载平衡器 , 并根据管理员的首选算法进行重定向 。
负载均衡算法
一个 负载平衡算法 控制的传入请求到群集ofservers分布 。 有多种方法可以实现这一点 , 具体取决于所需负载平衡的复杂性、手头任务的类型以及传入请求的实际分布 。 一些常用方法包括:
Round Robin – 最基本的负载分配技术 , 被网络管理员认为是相当原始的 。
在循环方案中 , 负载均衡器简单地运行服务器列表 , 依次向每个服务器发送一个连接 , 并在到达末尾时从列表的顶部开始 。
加权循环 ——与循环的原理相同 , 但每台机器随时间接收的连接数与为每台机器预定义的比率权重成正比 。
例如 , 管理员可以定义服务器 X 可以处理服务器 Y 和 Z 的两倍流量 , 因此负载均衡器应该为每个发送到服务器 Y 和 Z 的请求向服务器 X 发送两个请求 。
然而 , 考虑到大多数企业使用具有统一处理能力的服务器 , 加权轮询本质上试图解决一个不存在的问题 。
最少连接 - 将最新会话传输到会话启动时连接最少的服务器 。 为避免延迟 , 建议在服务器容量和资源统一的环境中使用此方法 。 最少连接数被认为是有问题的 , 因为大多数实现都面临着准确测量实际服务器工作负载的挑战 。
加权最少连接 – 与最少连接相同 , 不同之处在于服务器是根据容量选择的 , 而不仅仅是可用性 。 对于每个节点 , 管理员指定一个连接限制值 , 系统创建负载平衡所基于的比例算法 。
类似于加权轮询 , 这种方法假设服务器资源不统一——这与大多数企业网络拓扑不符 。