🔎这里是【秒懂·云原生】,关注我学习云原生不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️
【秒懂·云原生】 目前主要更新微服务,一起学习一起进步。
主要介绍Spring Cloud Alibaba —— 高可用流量控制组件
Sentinel 是由阿里巴巴中间件团队开发的开源项目,是一种
面向分布式微服务架构的轻量级高可用流量控制组件。
Sentinel 主要以流量为切入点,从流量控制、熔断降级、系
统负载保护等多个维度帮助用户保护服务的稳定性。
Sentinel 具有以下优势:
SPI ,全称为 Service Provider Interface,是一种服务
发现机制。它可以在 ClassPath 路径下的 METAINF/services 文件夹查找文件,并自动加载文件中定义
的类。
从功能上来说,Sentinel 与 Spring Cloud Netfilx Hystrix
类似,但 Sentinel 要比 Hystrix 更加强大,例如 Sentinel
提供了流量控制功能、比 Hystrix 更加完善的实时监控功能
等等。
Sentinel 主要由以下两个部分组成:
Sentinel 核心库不依赖 Sentinel Dashboard,但两者结合
使用可以有效的提高效率,让 Sentinel 发挥它最大的作
用。
Sentinel 的基本概念有两个,它们分别是:资源和规则。
基本概念 | 描述 |
---|---|
资源 | 资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如由应用程序提供的服务或者是服务里的方法,甚至可以是一段代码。 我们可以通过 Sentinel 提供的 API 来定义一个资源,使其能够被 Sentinel 保护起来。通常情况下,我们可以使用方法名、URL 甚至是服务名来作为资源名来述某个资源。 |
规则 | 围绕资源而设定的规则。Sentinel 支持流量控制、熔断降级、系统保护、来源访问控制和热点数等多种规则,所有这些规则都可以动态实时调整。 |
@SentinelResource 注解是 Sentinel 提供的最重要的注解
之一,它还包含了多个属性,如下表。
注:在 Sentinel 1.6.0 之前,fallback 函数只针对降级异
常(DegradeException)进行处理,不能处理业务异
常。
Sentinel 提供了一个轻量级的开源控制台 Sentinel
Dashboard,它提供了机器发现与健康情况管理、监控
(单机和集群)、规则管理与推送等多种功能。
Sentinel 控制台提供的功能如下:
Sentinel Dashboard 是我们配置和管理规则(例如流控规 则、熔断降级规则等)的重要入口之一。通过它,我们不仅可以对规则进行配置和管理,还能实时查看规则的效果。