从0到1实现RPC | 12 限流

  1. 在服务提供者provider端添加限流逻辑

限流:指定时间内请求数超过指定阈值时就抛出异常。

在ProviderInvoker的调用过程中,添加限流逻辑:

  • 使用滑动窗口SlidingTimeWindow统计30s的请求数;
  • 每个服务service对应一个滑动窗口;
  • 对限流模块使用同步锁;
  • 判断请求数是否超过阈值,如果是则抛出异常;
  • 记录请求次数。
  1. 添加测试案例

循环请求指定服务,每秒请求一次,限流配置参数为30s内超过20个请求就会被限流。

观察日志,在30s内连续请求20次后第21次的请求就被限流了。

源码:

https://github.com/midnight2104/midnight-rpc/tree/lesson12

相关推荐
Raas10011 分钟前
MemT-1.0 接入设计指南:硬件核算、三方案选型与写入触发点
大数据·网络·人工智能·机器学习·数据挖掘·ai agent
大泽九章44 分钟前
HTTP协议安全入门:从请求走私到CRLF
网络协议·安全·http
JoyCong19981 小时前
参数测评:ToDesk个人版、团队版、企业版的设备数、并发通道与安全能力对比
运维·服务器·网络·安全·智能手机·远程工作
zxanz11 小时前
多域名、泛域名 SSL 怎么选?避开证书采购的溢价陷阱
服务器·网络协议·ssl
似是燕归来1 小时前
Rtthread OS 功能开发之 socket tcp协议程序开发
网络·网络协议·tcp/ip·rtthread
Brookty1 小时前
网络原理|第三阶段:MTU、TCP 分段、IPv4 分片与重组及路径 MTU 发现
网络·ip
wjkjpcba1 小时前
工业以太网通信板PCBA厂家怎么选?接口器件与焊接工艺解析
网络·smt贴片加工·pcba贴片加工厂·机器人pcba
byte轻骑兵1 小时前
【LMP】规范精讲[6]: 从陌生到互信——安全简单配对(SSP)的四步握手
网络协议·蓝牙协议·lmp·蓝牙链路管理
AbandonForce1 小时前
Linux 网络:HTTP(一)基础与报文结构
linux·网络·http
乐橙开放平台1 小时前
门店监控想集中看?乐橙含光支持多品牌摄像头跨店管理
网络·笔记·物联网·自动化·音视频·智能家居