从0到1实现RPC | 12 限流

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

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

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

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

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

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

源码:

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

相关推荐
着迷不白9 分钟前
七、Linux网络管理
服务器·网络·php
北京耐用通信15 分钟前
耐达讯自动化NY-N801网关实现Modbus转Profinet协议转换应用案例
人工智能·物联网·网络协议·自动化·信息与通信
憧憬成为java架构高手的小白21 分钟前
计网管理大题
服务器·网络
星马梦缘23 分钟前
数据库 第十三章 未完结版本
java·网络·数据库
co_wait24 分钟前
不同VLAN间通信方法和配置
网络·智能路由器
nanaki5021324 分钟前
05-LWIP(内核框架)
网络·lwip
非凡大爹29 分钟前
实验十一 华为路由器和交换机实现单区域 OSPF 动态路由协议配置实验指导书
网络·华为
鼎讯信通29 分钟前
从“盲挖”到“精准敲击”:能源管网维护的一种新思路
大数据·网络·能源
风风筝吖38 分钟前
【华为】vlan+NAT(Easy-IP 与 NAT Server)+ OSPF 动态路由综合配置
网络·智能路由器
酉鬼女又兒43 分钟前
零基础入门虚拟局域网VLAN:从广播域问题根源到802.1q帧格式、三大端口类型及实战例题全解析
网络·网络协议·计算机网络·网络安全·职场和发展·智能路由器·求职招聘