RPC框架负载均衡

什么是负载均衡?

当一个服务节点无法支撑现有的访问量时,会部署多个节点,组成一个集群,然后通过负载均衡,将请求分发给这个集群下的每个服务节点,从而达到多个服务节点共同分担请求压力的目的。

负载均衡主要分为软负载 和硬负载 ,软负载就是在一台或多台服务器上安装负载均衡的软件,如LVS、Nginx 等,硬负载就是通过硬件设备来实现的负载均衡,如F5服务器 等。负载均衡的算法主要有随机法、轮询法、最小连接法等。

这种负载均衡主要应用在Web服务上,Web服务的域名绑定负载均衡的地址,通过负载均衡将用户的请求分发到一个个后端服务上。

RPC框架中的负载均衡

RPC负载均衡完全由RPC框架自身实现 ,RPC的服务调用者会与"注册中心"下发的所有服务节点建立长连接,在每次发起RPC调用时,服务调用者都会通过配置的负载均衡插件,自主选择一个服务节点,发起RPC调用请求。

RPC负载均衡策略一般包括随机权重、Hash、轮询。

轮询算法:保证每个节点接收到的请求流量是均匀的。

权重算法:通过控制节点权重的方式,来进行流量控制。

如何设计自适应的负载均衡?

调用者知道每个服务节点处理请求的能力,再根据服务处理节点处理请求的能力来判断要打给它多少流量即可。

如何判定一个服务节点的处理能力?

打分策略。服务调用者收集与之建立长连接的每个服务节点的指标数据,如服务节点的负载指标、CPU核数、内存大小、请求处理的耗时指标(如请求平均耗时、TP99、TP999)、服务节点的状态指标(如正常、亚健康)。

通过这些指标,计算分数,根据分数设置机器权重,动态调整机器流量。

关键步骤解释:

  1. 添加服务指标收集器,并将其作为插件,默认有运行时状态指标收集器、请求耗时指标收集器。
  2. 运行时状态指标收集器收集服务节点CPU核数、CPU负载以及内存等指标,在服务调用者与服务提供者的心跳数据中获取。
  3. 请求耗时指标收集器收集请求耗时数据,如平均耗时、TP99、TP999等。
  4. 可以配置开启哪些指标收集器,并设置这些参考指标的指标权重,再根据指标数据和指标权重来综合打分。
  5. 通过服务节点的综合打分与节点的权重,最终计算出节点的最终权重,之后服务调用者会根据随机权重的策略,来选择服务节点。

RPC框架负载均衡优点

RPC框架的负载均衡,由RPC框架自身实现,无需负载均衡设备或者负载均衡服务器来实现负载均衡。

可以节约成本;还减少了与负载均衡设备间额外的网络传输,提升了传输效率;并且均衡策略可配,便于服务治理。

相关推荐
2501_915106324 小时前
抓包抓到乱码或压缩字节怎么解析,TraceEagle五种查看模式和一键解码
网络协议·计算机网络·网络安全·ios·adb·https·udp
情 九4 小时前
MCP 实战 06:把 HTTP 接口接成工具,让 AI 帮你查数据
人工智能·网络协议·http·mcp
Da Da 泓5 小时前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
小羊没烦恼!12 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
万联WANFLOW13 小时前
异地组网速度忽快忽慢到底怎么回事?直连与中继的判断方法和处理步骤
运维·网络·网络协议·p2p
步行cgn15 小时前
HTTP 请求报文结构详解:请求行、请求头、请求体各自的作用
网络·网络协议·http
OpenLoong 开源社区18 小时前
打破 NAT 限制,零侵入跨网络通信:基于 WebRTC 的透明 TCP 隧道跨网络通信方案
网络协议·tcp/ip·开源·webrtc·openloong开源社区
从琳开始98918 小时前
从Socket到UDP回显服务器:Java网络编程完整指南
java·网络·网络协议·udp·java-ee
笨鸟先飞的橘猫19 小时前
混合流量导致 RPC 消息队列堆积
rpc·线上问题查证
明天也要努力学习1 天前
HTTP 协议的基本格式和 fiddler 的用法
网络协议·http·fiddler