最少连接是一种动态负载平衡算法,可将传入请求定向到分配时活动连接最少的服务器。与按固定顺序均匀分配请求的循环算法不同,最少连接算法会根据实时服务器负载优化分配,因此对于具有长连接或请求大小变化的应用程序特别有用。
当请求到达时,负载均衡器:
检查每个可用服务器上的活动连接数。
将请求分配给活跃连接数最少的服务器,确保工作负载更加均衡。
动态重复该过程,随着连接的打开和关闭进行调整。
例如,如果有三台服务器处理流量:
服务器 A:10 个活动连接
服务器 B:5 个活动连接
服务器 C:3 个活动连接
新的请求将被路由到服务器 C,因为它当前的负载最低。
实时负载感知:确保流量根据实际服务器利用率而不是静态轮换来平衡。
针对长连接进行了优化:非常适合数据库、API 和流媒体服务等环境,其中一些请求比其他请求消耗更多的资源。
降低过载风险:防止一台服务器不堪重负,而其他服务器却未得到充分利用。
需要持续监控:负载平衡器必须不断跟踪连接状态,这可能会带来轻微的开销。
对于短请求来说并非总是最好的:如果流量由许多小的、短暂的请求组成,则连接数可能无法准确反映服务器工作负载。
不考虑服务器容量差异:如果所有连接都需要高处理能力,那么更强大的服务器仍可能过载。在这种情况下,通常首选加权最小连接(根据容量为服务器分配不同的权重)。
API 网关:平衡具有不同处理时间的后端微服务之间的流量。
数据库负载平衡:跨数据库副本分发查询以防止瓶颈。
反向代理服务器:确保处理动态内容的网络服务器不会超负荷。
最少连接是一种有效的自适应负载平衡策略,尤其适用于流量模式不可预测的应用程序。通过确保将请求发送到负担最少的服务器,它有助于在高需求环境中保持系统稳定性和响应能力。