• Spring Cloud Alibaba —— 高可用流量控制组件


    在这里插入图片描述

    🔎这里是【秒懂·云原生】,关注我学习云原生不迷路
    👍如果对你有帮助,给博主一个免费的点赞以示鼓励
    欢迎各位🔎点赞👍评论收藏⭐️

    👀专栏介绍

    【秒懂·云原生】 目前主要更新微服务,一起学习一起进步。

    👀本期介绍

    主要介绍Spring Cloud Alibaba —— 高可用流量控制组件

    Spring Cloud Alibaba —— 高可用流量控制组件

    Sentinel 是由阿里巴巴中间件团队开发的开源项目,是一种
    面向分布式微服务架构的轻量级高可用流量控制组件。

    Sentinel 主要以流量为切入点,从流量控制、熔断降级、系
    统负载保护等多个维度帮助用户保护服务的稳定性。

    Sentinel 具有以下优势:

    • 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的 “双十一”大促流量的核心场景,例如秒杀(将突发流量控制在系统可以承受的范围)、消息削峰填谷、集群流量 控制、实时熔断下游不可用服务等。
    • 完备的实时监控:Sentinel 提供了实时监控功能。用户 可以在控制台中看到接入应用的单台机器的秒级数据, 甚至是 500台以下规模集群的汇总运行情况。
    • 广泛的开源生态:Sentinel 提供了开箱即用的与其它开 源框架或库(例如 Spring Cloud、Apache Dubbo、 gRPC、Quarkus)的整合模块。我们只要在项目中引入 相应的依赖并进行简单的配置即可快速地接入Sentinel。此外,Sentinel 还提供 Java、Go 以及 C++ 等多语言的原生实现。
    • 完善的 SPI 扩展机制:Sentinel 提供简单易、完善的 SPI 扩展接口,我们可以通过实现这些扩展接口快速地定制逻辑,例如定制规则管理、适配动态数据源等。

    SPI ,全称为 Service Provider Interface,是一种服务
    发现机制。它可以在 ClassPath 路径下的 METAINF/services 文件夹查找文件,并自动加载文件中定义
    的类。

    从功能上来说,Sentinel 与 Spring Cloud Netfilx Hystrix
    类似,但 Sentinel 要比 Hystrix 更加强大,例如 Sentinel
    提供了流量控制功能、比 Hystrix 更加完善的实时监控功能
    等等。

    Sentinel 的组成

    Sentinel 主要由以下两个部分组成:

    • Sentinel 核心库:Sentinel 的核心库不依赖任何框架或 库,能够运行于 Java 8 及以上的版本的运行时环境中, 同时对Spring Cloud、Dubbo 等微服务框架提供了很好 的支持。
    • Sentinel 控制台(Dashboard):Sentinel 提供的一个 轻量级的开源控制台,它为用户提供了机器自发现、簇点链路自发现、监控、规则配置等功能。

    Sentinel 核心库不依赖 Sentinel Dashboard,但两者结合
    使用可以有效的提高效率,让 Sentinel 发挥它最大的作
    用。

    Sentinel 的基本概念

    Sentinel 的基本概念有两个,它们分别是:资源和规则。

    基本概念描述
    资源资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如由应用程序提供的服务或者是服务里的方法,甚至可以是一段代码。 我们可以通过 Sentinel 提供的 API 来定义一个资源,使其能够被 Sentinel 保护起来。通常情况下,我们可以使用方法名、URL 甚至是服务名来作为资源名来述某个资源。
    规则围绕资源而设定的规则。Sentinel 支持流量控制、熔断降级、系统保护、来源访问控制和热点数等多种规则,所有这些规则都可以动态实时调整。

    @SentinelResource 注解

    @SentinelResource 注解是 Sentinel 提供的最重要的注解
    之一,它还包含了多个属性,如下表。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    注:在 Sentinel 1.6.0 之前,fallback 函数只针对降级异
    常(DegradeException)进行处理,不能处理业务异
    常。

    Sentinel 控制台

    Sentinel 提供了一个轻量级的开源控制台 Sentinel
    Dashboard,它提供了机器发现与健康情况管理、监控
    (单机和集群)、规则管理与推送等多种功能。
    Sentinel 控制台提供的功能如下:

    • 查看机器列表以及健康情况:Sentinel 控制台能够收集 Sentinel 客户端发送的心跳包,判断机器是否在线。
    • 监控(单机和集群聚合):Sentinel 控制台通过 Sentinel 客户端暴露的监控 API,可以实现秒级的实时监 控。
    • 规则管理和推送:通过 Sentinel 控制台,我们还能够针 对资源定义和推送规则。
    • 鉴权:从 Sentinel 1.6.0 起,Sentinel 控制台引入基本 的登录功能,默认用户名和密码都是 sentinel。

    Sentinel Dashboard 是我们配置和管理规则(例如流控规 则、熔断降级规则等)的重要入口之一。通过它,我们不仅可以对规则进行配置和管理,还能实时查看规则的效果。
    在这里插入图片描述

  • 相关阅读:
    Jitamin 安装与配置
    终端准入控制系统,保障企业内网安全的关键防线
    【C++ 23种设计模式】
    分享Markdown编写文档的技巧
    分类预测 | MATLAB实现WOA-CNN-BiGRU鲸鱼算法优化卷积双向门控循环单元数据分类预测
    第二章 开发一个Vue组件
    【Redis】2、Redis持久化和性能管理
    C和指针 第15章 输入/输出函数 15.11 二进制I/O
    【随机过程】马克可夫链-关于简单随机游走的状态判定
    缓冲区的奥秘:解析数据交错的魔法
  • 原文地址:https://blog.csdn.net/weixin_50843918/article/details/125529158