dubbo-ActiveLimitFilter

服务消费者端限流

ActiveLimitFilter限制客户端对interface或method的并发客户端调用。

限流方式

从url中获取actives并发数量,actives大于0进行并发控制,actives小于等于0不控制。

消费者端使用RpcStatus下的ConcurrentMap<String, ConcurrentMap<String, RpcStatus>>存储每个method的调用状态。

在消费者端使用静态RpcStatus进行控制消费者并发。

重点内容

  • RpcStatus中维护原子性Integer的active变量,对其进行增减已达到控制并发的目标。
  • 内部使用双重锁机制控制消费者端每个method的RpcStatus状态。
  • 使用RpcStatus.wait()与RpcStatus.notifyAll()方式阻塞请求或者唤醒请求。

 

posted @ 2024-05-07 10:25  使用D  阅读(5)  评论(0编辑  收藏  举报