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

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    【云原生】-Docker部署及使用压测神器sysbench
    欧拉角(Euler Angle)
    Redis事务
    python学习--字符串的常用操作
    Seata分布式事务
    day02_运算符_if
    【调参】如何为神经网络选择最合适的学习率lr-LRFinder-for-Keras
    【LeetCode】2022 7月 每日一题
    【MySQL】必知必会知识点
    Pytorch(一) —— 基本语法
  • 原文地址:https://blog.csdn.net/hjseo_seg/article/details/126114115