高性能分布式流控组件

  1. 分布式流控组件的架构
  2. 令牌桶算法和漏桶算法
  3. 单点频控和分布式频控的区别
  4. 分时上报和全量上报的性能差别
  5. 结合配置中心实现流控性能的动态下发

阿里的分布式流控方案

Sentinel是什么

Sentinel 是面向分布式服务架构的轻量级流量控制框架,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助您保护服务的稳定性。

Sentinel基本概念
  1. 资源

    一个服务或者代码块就是一个资源,概念同RESTful的理解一样,状态可转移 表现层状态转化

  2. 规则

    围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。

Sentinel的功能和设计理念
  1. 流量控制

    根据系统的处理能力对流量进行控制。Sentinel 作为一个调配器,可以根据需要把随机的请求调整成合适的形状

  2. 熔断降级

    当调用链路中某个资源出现不稳定,例如,表现为 timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源,最终产生雪崩的效果。

    • 熔断手段
      1. 通过并发线程数进行限制,堆积了过多线程后,会拒绝新来的请求
      2. 通过响应时间来对资源进行降级,过了时间窗口进行恢复
  3. 系统负载保护

    系统的入口流量和系统的负载达到一个平衡

Sentinel如何工作的

工作机制:

  • 提供API,来定义需要保护的资源,提供设施对资源进行实时统计和调用链分析
  • 根据预设规则进行流量控制
  • 实时的监控系统