负载均衡算法

简介: 负载均衡常用算法包括随机、轮询、最小活跃数、源地址哈希和一致性哈希。随机按概率分配请求,可加权提升性能优的服务器处理量;轮询顺序调度,加权后按权重分配请求比例;最小活跃数将请求发往负载最低的服务器,实现动态均衡;源地址哈希根据IP固定映射目标,保障会话一致性;一致性哈希通过Hash环减少节点变动对整体映射的影响,提升系统稳定性。不同场景适用不同策略。

随机
调用关系如上图(简化了公网->防火墙处理),适合场景:所有服务器性能基本一致,且无超阈值流量。
如果存在部分机器性能更优,此时可以在随机基础上增加权重,升级为:随机权重算法。
轮询
轮询不再是在多台服务器随机挑选,而是按照顺序一个个排队调用,调用完再插入队尾等待下一次调用
同加权随机,轮询也同样存在加权轮询的场景,此时流量调度将发生如下变化:
此处逻辑相对复杂,笔者在此说出主要思路,后续有时间补充伪代码,感兴趣的可以参照Dubbo的实现
如上有服务器servers=[A,B],对应权重weights=[3,1],总权重为4。我们可以理解为有4台服务器,3台A,1台B,一次调用过来的时候,需要按顺序访问。如有5次调用,调用顺序为AAABA。
选举思路如下:
次数
WeightedRoundRobin
选择结果
选择后的WeightedRoundRobin
1
3、1
A
2、1
2
2、1
A
1、1
3
1、1
A
0、1
4
0、1
B
0、0(等于0-0时复原成:3、1)
5
3、1
A
2、1
最小活跃数
指:将当前请求转发到连接数/请求数最少的机器上,其特点是根据服务器实时运行状态动态分配,保障服务负载不会过饱和。如下图当请求4过来时,Nginx判断目前服务器1连接数>服务器2,故4会请求到服务器2上:
源地址哈希
根据请求源IP哈希计算得到一个数值,用该数值在候选服务器列表的进行取模运算,得到的结果便是选中的服务器,此操作可以保证固定IP的请求总是到某一台服务器上,伪代码如下:
源地址哈希伪代码
Java
运行代码
复制代码
1
2
3
4
5
private K doSelect(List nodes, String ip) {
int length = nodes.size();
int index = hash(ip) % length;
return nodes.get(index);
}
一致性哈希
相同的请求尽可能落到同一个服务器上。一致性哈希解决稳定性问题,可以将所有的存储节点排列在首尾相接的 Hash 环上,每个 key 在计算 Hash 后会 顺时针找到临接的存储节点存放。而当有节点加入或退出时,仅影响该节点在 Hash环上顺时针相邻的后续节点。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
负载均衡 监控 算法
负载均衡的方法有哪些?
负载均衡的方法有哪些?
803 59
|
7月前
|
JSON API 开发者
深度分析微店API接口,用Python脚本实现
微店作为知名移动端电商平台,其开放平台提供丰富的API接口,支持商品、订单、客户及营销管理。本文分析其API核心特性,并提供Python调用示例,助力开发者快速集成业务功能。
|
10月前
|
Web App开发 人工智能 JavaScript
一键三连不求人!用 CodeBuddy 写个浏览器插件自动点赞、评论、收藏
本文介绍了一款通过 CodeBuddy AI 工具开发的浏览器插件,可自动完成“点赞、评论、收藏”三连操作。作者从需求出发,分四步实现:搭建基础框架、指定目标网页、解析内容并模拟点击事件,最后加载验证插件。借助 CodeBuddy 自动生成代码,整个过程高效便捷,大幅提升用户体验。此工具不仅节省手动操作时间,还为自动化任务提供了新思路,适合热爱技术与效率提升的网页冲浪者尝试。
抖音直播间在线用户私信脚本,直播间自动关注收藏点赞插件,全自动直播间粉丝引流刷屏软件
这是一款针对抖音直播间流量利用的自动化工具源码。通过模拟用户行为,如关注、点击等,帮助用户从高价值直播间分得流量红利。
|
11月前
|
搜索推荐 物联网 数据库
2025年六款标签制作工具评测
本文将分析六款常见的标签制作与管理软件:草料二维码、DLabel云标签、BYLabel标签打印、汉码、精臣云打印、BarTender,帮助你选择合适的工具
1284 10
|
负载均衡 算法
架构学习:7种负载均衡算法策略
四层负载均衡包括数据链路层、网络层和应用层负载均衡。数据链路层通过修改MAC地址转发帧;网络层通过改变IP地址实现数据包转发;应用层有多种策略,如轮循、权重轮循、随机、权重随机、一致性哈希、响应速度和最少连接数均衡,确保请求合理分配到服务器,提升性能与稳定性。
2765 11
架构学习:7种负载均衡算法策略
|
负载均衡 监控 算法
每个程序员都应该知道的 6 种负载均衡算法
每个程序员都应该知道的 6 种负载均衡算法
1641 2
|
负载均衡 监控 算法
Nginx:负载均衡小专题(二)
Nginx:负载均衡小专题(二)
302 2
|
弹性计算 负载均衡 算法
负载均衡调度算法
负载均衡调度算法介绍
482 2
|
监控 API 数据安全/隐私保护
2024年开源API工具盘点,覆盖API全生命周期
2024年经济持续低迷,本文整理一些免费的开源工具,旨在帮助企业组织降低工具的支出成本,能用免费的何必用付费的呢(狗头)?
952 0

热门文章

最新文章