Alibaba Sentinel是什么?

Sentinel

1. 定义

Sentinel是以面向微服务的轻量级流量控制框架,从流量控制、熔断降级、热点防护、系统负载保护等多个维度保护服务的稳定性。

2. 作用

保障分布式系统的高可用。

3. 特性

3.1 丰富的应用场景

Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断等业务场景。

3.2 完备的时时监控

Sentinel提供实时监控服务,可以在控制台监看接入应用的机器运行情况,甚至 500 台以下规模的集群的汇总运行情况。

3.3 广泛的开源生态

Sentinel提供了与其他开源框架/库的整合模块,如spring cloud、Dubbo等技术的整合;只需要引入相应的依赖,并进行简单的配置即可快速接入Sentinel,实现开箱即用。

Alibaba Sentinel是什么?

3.4 完善的SPI扩展点

Sentinel 提供简单易用、完善的 SPI 扩展接口;您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

ps:SPI:

​ SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。

4. Sentinel的基本概念

4.1 资源

资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。

只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。

4.2 规则

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

5. Sentinel与Hystrix的不同

Alibaba Sentinel是什么?

6. Sentinel的工作机制

  • 对主流框架提供适配或者显示的 API,来定义需要保护的资源,并提供设施对资源进行实时统计和调用链路分析。
  • 根据预设的规则,结合对资源的实时统计信息,对流量进行控制。同时,Sentinel 提供开放的接口,方便您定义及改变规则。
  • Sentinel 提供实时的监控系统,方便您快速了解目前系统的状态。