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()方式阻塞请求或者唤醒请求。
收藏文章数量从多到少与“把书读薄”是一个道理