- 分布式流控组件的架构
- 令牌桶算法和漏桶算法
- 单点频控和分布式频控的区别
- 分时上报和全量上报的性能差别
- 结合配置中心实现流控性能的动态下发
阿里的分布式流控方案
Sentinel是什么
Sentinel 是面向分布式服务架构的轻量级流量控制框架,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助您保护服务的稳定性。
Sentinel基本概念
资源
一个服务或者代码块就是一个资源,概念同RESTful的理解一样,状态可转移 表现层状态转化
规则
围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。
Sentinel的功能和设计理念
流量控制
根据系统的处理能力对流量进行控制。Sentinel 作为一个调配器,可以根据需要把随机的请求调整成合适的形状
熔断降级
当调用链路中某个资源出现不稳定,例如,表现为 timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源,最终产生雪崩的效果。
- 熔断手段
- 通过并发线程数进行限制,堆积了过多线程后,会拒绝新来的请求
- 通过响应时间来对资源进行降级,过了时间窗口进行恢复
- 熔断手段
系统负载保护
系统的入口流量和系统的负载达到一个平衡
Sentinel如何工作的
工作机制:
- 提供API,来定义需要保护的资源,提供设施对资源进行实时统计和调用链分析
- 根据预设规则进行流量控制
- 实时的监控系统