负载均衡算法

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 本文介绍多种负载均衡算法:随机、加权随机、轮询、加权轮询、最小活跃数、源地址哈希及一致性哈希。适用于不同场景,如性能均等服务器用随机,性能差异大则用加权算法;动态负载选最小活跃数,固定IP请求宜用源地址哈希,节点变动频繁时推荐一致性哈希,保障请求稳定分配。

随机调用关系如上图(简化了公网->防火墙处理),适合场景:所有服务器性能基本一致,且无超阈值流量。如果存在部分机器性能更优,此时可以在随机基础上增加权重,升级为:随机权重算法。轮询轮询不再是在多台服务器随机挑选,而是按照顺序一个个排队调用,调用完再插入队尾等待下一次调用同加权随机,轮询也同样存在加权轮询的场景,此时流量调度将发生如下变化:此处逻辑相对复杂,笔者在此说出主要思路,后续有时间补充伪代码,感兴趣的可以参照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运行代码复制代码
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应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
7月前
|
机器学习/深度学习 存储 自然语言处理
大模型基础概念术语解释
大语言模型(LLM)基于Transformer架构,通过海量文本训练,具备强大语言理解与生成能力。其核心组件包括注意力机制、位置编码与嵌入层,支持文本分割为Token进行处理。参数量达亿级以上,规模增长带来涌现能力,如复杂推理与跨任务泛化。混合专家模型(MoE)提升效率,推动模型持续扩展。
|
算法 搜索推荐 Java
拼多多与抖音电商 API 接口,哪个更适合带货?
在数字化营销时代,拼多多与抖音电商API成为带货关键工具。拼多多API集成简便,适合低价、团购型商品推广;抖音电商API则依托短视频与直播,实现高互动内容带货。本文对比两者功能、优势与适用场景,助你选择更高效带货方案。
|
8月前
|
Oracle Java 关系型数据库
ojdbc14.jar 怎么用?Oracle数据库连接详细步骤(附代码)
ojdbc14.jar是Java连接Oracle数据库的JDBC驱动,充当程序与数据库通信的桥梁。使用时需下载该jar包,导入项目(可通过IDE或命令行添加到类路径),再编写Java代码加载驱动并使用`jdbc:oracle:thin:`格式的连接字符串连接数据库,记得替换为实际的地址、端口、服务名及用户名密码。
|
6月前
|
机器学习/深度学习 人工智能 并行计算
AI语音克隆掀起“声”命危机:全球Vishing攻击激增,传统身份核验体系告急
2025年,AI语音诈骗席卷全球。伦敦一银行员工被克隆的CFO声音欺骗,转出230万欧元。生成式语音技术让“声纹复刻”轻而易举,传统KBA与语音OTP防线崩溃。从CEO诈骗到亲情骗局,攻击者利用开源模型实施精准社工攻击。防御需结合被动生物识别、多因素认证与行为分析。专家警示:声音已不可信,唯有提高警觉,重建信任机制,方能应对这场真实与伪造的战争。
476 1
|
7月前
|
Linux 数据安全/隐私保护 虚拟化
虚拟机安装(CentOS7)
准备CentOS7镜像及VMware Workstation虚拟机工具,可从百度云下载(提取码:h1y9/bkz3)。使用VMware创建虚拟机,参考知乎教程完成安装。默认登录用户为root,密码由用户自定义设置。需准备一台具备运行虚拟机条件的电脑。
|
7月前
|
消息中间件 人工智能 决策智能
AgentScope x RocketMQ:构建多智能体应用组合
AgentScope是阿里巴巴推出的开发者友好型多智能体框架,支持模块化、可定制的智能体应用开发。通过集成RocketMQ,实现高效、可靠的Agent间通信,助力构建如“智能旅行助手”等复杂协作场景,推动多智能体生态发展。(238字)
|
7月前
|
人工智能 自然语言处理 API
全面认识MCP:大模型连接真实世界的“USB-C接口”
MCP(模型上下文协议)是AI时代的“万能接口”,由Anthropic提出,旨在统一大模型与工具、数据源的连接标准。它简化集成、提升任务处理能力,支持多步骤流程与安全合规,推动AI智能体从对话走向行动,重塑AI应用生态。
|
7月前
|
XML 算法 安全
详解RAG五种分块策略,技术原理、优劣对比与场景选型之道
RAG通过检索与生成结合,提升大模型在企业场景的准确性与安全性。分块策略是其核心,直接影响检索效果与生成质量。本文系统解析五种主流分块方法:固定大小、语义、递归、基于文档结构及LLM分块,对比其优缺点与适用场景,并探讨RAG在金融、医疗等高风险领域的可验证性挑战与前沿优化路径。
|
7月前
|
消息中间件 人工智能 Linux
基于 RocketMQ 构建 高可靠 A2A 通信通道
A2A协议由Google于2025年发起,旨在实现跨厂商AI智能体的标准化通信。基于RocketMQ构建的异步通信方案,支持任务分发、流式交互与状态同步,助力高效、可靠的多智能体协同系统落地,现已开源。
|
7月前
|
人工智能 JSON 数据挖掘
大模型应用开发中MCP与Function Call的关系与区别
MCP与Function Call是大模型应用的两大关键技术。前者是跨模型、标准化的通信协议,实现多工具动态集成;后者是模型调用外部函数的内置机制。MCP如同“蓝牙协议”,支持多设备互联互通,具备高兼容性与扩展性;Function Call则像“语音助手”,依赖特定模型完成具体任务。二者在功能上互补:MCP构建通用接口层,解耦模型与工具;Function Call负责意图解析与指令生成。