alibaba/sentinel-golang

Sentinel Go Cluster Flow Control

chenneal opened this issue · 0 comments

ASOC: sentinel-golang Cluster Flow Control

基于v1.0.4版本发布集群流控功能,实现 sentinel-golang Cluster Flow Control

背景

目前 sentinel-golang 只支持单机限流,如果碰到集群集体限流的场景,需要提前估算单机的阈值,不过这个单机估算非常困难,主要体现在:

  • 集群的机器数量是随时变化的,那么这个阈值需要根据机器数量实时更改
  • 算平均值这种效果会受上游负载均衡效果的影响,负载均衡能力越弱,流控效果越差

基于上述两点,集群流控的开发是非常有必要的,且我们希望有以下模块:

  • 统一的与 token server 交互的 grpc 定义接口
  • 完整的集群流控 golang-client 模块
  • 一些扩展的 adapter 模块,包括 grpc、redis 等

实现方案

可以参考已有的一些文档和实现

https://github.com/alibaba/Sentinel/wiki/集群流控

https://github.com/alibaba/sentinel-golang/wiki/集群流控(Proposal)

https://github.com/youtube/doorman