5种负载均衡策略
负载均衡将请求派发到网络中的一个或多个节点上进行处理。
硬件负载均衡,即通过在服务器间安装专门的硬件来进行负载均衡工作
软件负载均衡,通过服务器上安装的软件来对请求进行分配派发。
负载均衡策略
public interface IRule 策略接口
1.轮询
-
给每个请求标记序号,之后把请求依次分发到服务器节点上。
-
适用集群各节点提供服务能力相等,且无状态的场景。
-
但是实际情况中各个节点所能提供服务的能力并不相同。
-
所以加权轮询,对每个节点加上了权重属性。
-
但是合适的权重难以随实际情况的改变而改变。
2.随机
-
每次请求随机分发给服务器节点。
-
缺点是在同一截面上发生碰撞的概率比较高;
-
在非对等集群组网,或者硬件配置差异较大时,各节点负载不均匀
-
通过加权随机进行提升。
3.服务调用时延(最小响应时间)
-
根据每个服务器处理请求的时间和平均时间的差值,来动态调整分发权重,
-
可以保证服务延时大的服务器,处理更少的请求。
-
该策略可以保证处理请求能力强的服务器接收到更多的请求。
-
通过动态权重缩小服务调用时延的震荡范围,是所有请求的处理时间接近平均值。
-
但计算平均响应时间会耗费时间,滞缓请求的分发。
-
改进地只计算最近若干次的平均时间的策略。
4.一次性哈希
-
哈希值是32位的正整数,其值的分布范围按照一定规则分配给多个虚拟节点;
-
虚拟节点数量至少应是实际节点的两倍;
-
实际节点通过哈希值再对虚拟节点进行瓜分;
-
对“请求”取哈希值,分发到相应虚拟节点,虚拟节点对应的实际节点来处理“请求”。
-
-
相同参数的请求,总是发送到同一个服务提供者。
-
当某一台服务器宕机时,原本发往该节点的请求,基于虚拟节点,平摊到其他提供者,
-
从而避免引起集群剧烈变动。
5.粘滞链接
-
主要适用于有状态的服务,同一客户端每次访问,处理请求的服务器为同一台。
-
客户端首次和服务端交互时,将链路与相应处理的服务器进行绑定。
-
当原有服务器宕机后,返回不可用消息,服务端重新为客户端绑定服务器。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程