Neptune icon indicating copy to clipboard operation
Neptune copied to clipboard

流量控制设计

Open tony-is-coding opened this issue 2 years ago • 1 comments

tony-is-coding avatar Apr 21 '24 14:04 tony-is-coding

背景说明

系统需要做一个流量控制, 针对一些使用场景下, 对服务的保护、对服务的限制 需要从外部流量入口着手

思路

因为目前RPC的设计是应用级别提供服务的, 所以设计限流做到服务级别的限流即可

目前系统设计有

  1. provider processor 层, 这一层基本上解析完成了消息, 可以在这里进行限流行为
  2. 需要考虑后续 processor是会有自己的一套线程池的, 所以这里统计请求数量, 需要在多线程统计
  3. 限流算法应该需要做到 多种限流的支持, 分布式限流这个目前倒是没有很大必要, 服务的自我保护做好即可,其他交给上层lb

拓展性

  1. 限流应该是个全局的 拦截器, 但是这个拦截器最好支持用户重写 或者 增加 postprocessor 的功能, 一些场景下用户需要进行流量监控上报
  2. 如果用户想要自定义呢? SPI + 接口抽象需要有的

问题与风险

tony-is-coding avatar Apr 21 '24 14:04 tony-is-coding