从0到1实现RPC | 12 限流

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

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

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

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

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

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

源码:

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

相关推荐
CHINA红旗下14 分钟前
固定虚拟机的IP地址
运维·服务器·网络
网络研究院14 分钟前
美国网络安全趋势与发展
网络·安全·美国·趋势·发展
着迷不白19 分钟前
十、网络客户端工具curl, wget, ssh, scp, sftp, rsync
运维·网络·ssh
袁小皮皮不皮31 分钟前
6.HCIP OSPF域间防环机制与虚链路
服务器·网络·笔记·网络协议·学习·智能路由器
AI784035 分钟前
安全左移:网络安全从“亡羊补牢”走向“未雨绸缪”
网络·安全·web安全
caimouse40 分钟前
Reactos 第 10 章 网络操作 — 10.2 NDIS及其实现
服务器·网络
zhangfeng11331 小时前
国家超算中心 昆山站 异构加速卡1 显存16GB详细配置, 海光 Z100SM HCU
linux·网络·深度学习·c#
青瓦梦滋1 小时前
Linux:TCP协议的socket套接字
网络·网络协议·tcp/ip
烂白菜1 小时前
码道启辰:定时任务自由编排
运维·服务器·网络
梁辰兴1 小时前
计算机网络基础:对称加密密码体制
网络·计算机网络·计算机·对称加密·计算机网络基础·梁辰兴