1

高性能分布式流控组件

 2 years ago
source link: https://zasy.github.io/2018/10/17/project-2/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

高性能分布式流控组件

发表于 2018-10-17

| 阅读次数:

字数统计:

|

阅读时长 ≈

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

阿里的分布式流控方案

Sentinel是什么

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

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

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

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

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

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

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

Sentinel如何工作的

工作机制:

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK