SpringCloud(17):Sentinel简介

news2024/11/29 10:58:50

1 流量控制&熔断降级介绍

1.1 流量控制简介

拿旅游景点举个示例,每个旅游景点通常都会有最大的接待量,不可能无限制的放游客进入,比如故宫每天只卖八万张票,超过八万的游客,无法买票进入,因为如果超过八万人,景点的工作人员可能就忙不过来,过于拥挤的景点也会影响游客的体验和心情,并且还会有安全隐患;只卖N张票,这就是一种限流的手段。

流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。在网络传输时,任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。

1.2 熔断降级简介

在调用系统的时候,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生堆积,如下图:

 

 

1.3 流量控制&熔断降级实现方案

Hystrix

主页地址:https://github.com/Netflix/Hystrix/

Hystrix源自Netflix API团队于2011年开始的弹性工程工作。2012年,Hystrix不断发展和成熟,Netflix内的许多团队都采用了它。如今,每天在Netflix上通过Hystrix执行数以千亿计的线程隔离和数以千计的信号隔离调用。这大大提高了正常运行时间和弹性。

Resilience4j

主页地址:https://github.com/resilience4j/resilience4j

Resilience4j是受Netflix Hystrix启发的轻量级容错库,但专为Java 8和函数式编程而设计。轻巧,因为该库仅使用Vavr,而Vavr没有任何其他外部库依赖项。相比之下,Netflix Hystrix对Archaius具有编译依赖性,而Archaius具有更多外部库依赖性。

Sentinel

主页地址:https://github.com/alibaba/Sentinel

Sentinel 是阿里巴巴出品的面向分布式服务架构的轻量级流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护等多个维度来保障微服务的稳定性。

竞品对比

Sentinel
Hystrix
resilience4j
隔离策略
信号量隔离(并发线程数隔离)
线程池隔离 / 信 号量隔离
信号量隔离
熔断降级策略
基于响应时间、异常比率、异常数
基于异常比率
基于异常比率、响应时间
实时统计实现
滑动窗口
滑动窗口
Ring Bit Buffffer
动态规则配置
支持多种数据源
支持多种数据源
有限支持
扩展性
多个扩展点
插件的形式
接口的形式
基于注解的支持
支持
支持
支持
限流
基于 QPS ,支持基于调用关系的限流
有限的支持
Rate Limiter
流量整形
支持预热模式、匀速器模式、预热排队模式
不支持
简单的 Rate Limiter 模式
系统自适应保护
支持
不支持
不支持
控制台
提供开箱即用的控制台,可配置规则、查看秒级监控、机器发现等
简单的监控查看
不提供控制台,可对接其 它监控系统

2 Sentinel介绍

2.1 Sentinel简介

Sentinel概述

Sentinel 是阿里巴巴出品的面向分布式服务架构的轻量级流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护等多个维度来保障微服务的稳定性。

主页地址:https://github.com/alibaba/Sentinel

Sentinel历史

2012年,Sentinel 诞生,主要功能为入口流量控制。

2013-2017年,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量归整场景以及生产实践。

2018年,Sentinel开源,并持续演进。

2019年,Sentinel朝着多语言扩展的方向不断探索,推出C++原生版本,同时针对Service Mesh场景也推出了 Envoy 集群流量控制支持,以解决Service Mesh架构下多语言限流的问题。

2020年,推出Sentinel Go版本,继续朝着云原生方向演进。

Sentinel组成

Sentinel 的使用主要分为两个部分:

核心库:主要指Java 客户端,不依赖任何框架/库,能够运行于 Java 7 及以上的版本的运行时环境,同时对Dubbo / Spring Cloud 等框架也有较好的支持。

控制台:控制台主要负责管理推送规则、监控、集群限流分配管理、机器发现等。

2.2 Sentinel特征

Sentinel 具有以下特征:

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

2.3 Sentinel特性

2.4 Sentinel开源生态

 

2.5 Sentinel的相关概念

资源

资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。

规则

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

 

2.6 Sentinel的优势

  • 友好的控制面板
  • 支持实时监控。
  • 支持多种限流。支持QPS限流,线程数限流以及多种限流策略。
  • 支持多种降级模式,支持按平均返回时间降级,按多种异常数降级,按异常比率降级等。
  • 方便扩展开发,支持SPI模式对chain进行扩展。
  • 支持链路的关联,可以实现按链路统计限流,系统保护,热门资源保护等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/335393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件架构设计(二)——领域架构、基于架构的软件开发方法

目录 一、架构描述语言 ADL 二、特定领域软件架构 DSSA 三、DSSA的三层次架构模型 . 四、基于架构的软件开发方法 (1)基于架构的软件设计(ABSD) (2)开发过程 一、架构描述语言 ADL ADL是一种形式化语言,它在底层语义模型的支持下,为软件系统概念体…

云安全之浅谈密钥泄露

前言 如今越来越多公司选择使用云平台,诸如:阿里云、腾讯云、AWS、Azure。使用云平台大大降低了企业的资源成本,另一方面随着公用云的普及,也存在着一些风险。现代应用程序需要与其他外部应用程序通信,并且它们需要内部服务到服务…

ESP32设备驱动-模拟输入(ADC)

模拟输入(ADC) 文章目录 模拟输入(ADC)1、ADC介绍2、ADC相关API介绍3、软件准备4、硬件准备5、代码实现本文将介绍如何使用Arduino IDE对ESP32进行模拟读取。模拟读数可用于从可变电阻式电位计或模拟传感器读取值。 1、ADC介绍 ESP32有两个ADC单元,可用于以下场景: 生成…

Echarts的Category轴滑动

Echarts的Category轴滑动 效果,滚轮上下可拖动 配置项 dataZoom: [// {// // disabled: false,// start: 100, //默认为0// end: 80, //默认为100// // startValue: [xArr.length - 1],// // endValue: [xArr.length - 4],// type: slide…

typora每次复制文档都要附带图片文件夹?学会配置gitee图床

0. 引言 作为开发人员,我们习惯使用md格式来编写文档,特别是typora编辑器更是日常使用的软件。但作为轻量化的文档编辑器,我们在默认插入图片时,一般typora会将图片保存到本地或者引用一个本地图片的路径 当文档还在我们本地打开…

免费IB学习资源推荐,学霸常用

看了那些学霸们分享的笔记与网站,深刻认识到学习的竞争,就是对个人资源归纳整理能力的比拼,想要学好IB学科,除了跟着自己的辅导老师积极学习以外,还要学会充分掌握学习资料,这样才能做到心中有数&#xff0…

超清遥感影像语义分割处理

分割出城市中的垃圾堆场,遂寻找到了 UrbanAtlas 2012 database 这个数据集和对应的 baseline baseline IoU for class 1: 0.5667 IoU for class 2: 0.3504 IoU for class 3: 0.0001 IoU for class 4: 0.0002 IoU for class 5: 0.4121 IoU for class 6: 0.0204 IoU for cla…

第三章:IP地址加掩码讲解和ping命令运用

IP地址加掩码:我打几个IP地址给你们瞅瞅。10.20.70.55/24192.168.30.2/24我写的这几个都是24位掩码的,/后面的是掩码位数,也就是是255.255.255.0。子网掩码分为三类:A类:255.0.0.0B类:255.255.0.0C类&#…

RMIserver端和Registry端源码分析

想学JDNI,那想必一定躲不过RMI。 RMI简述 RMI可以远程调用JVM对象并获取结果。所以需要一个server和一个client进行通信。 Server端会创建一个远程对象用于client端远程访问。 下面改造一张来自W3Cschool的图: 只需要知道:Client端使用st…

UE5 UI材质特效

一、扩散的光圈。效果如下:用ps拉一个 对称渐变 和 径向渐变对称渐变:用于做纹理,通过平面坐标到极坐标的公式,转换成环。径向渐变:用于Mask将贴图的纹理组改为 UI,压缩设置改为 用户界面2D。创建材质 M_Te…

Myb atis基础3

Mybatis注解开发单表操作Mybatis的常用注解Mybatis的增删改查MyBatis注解开发的多表操作MyBatis的注解实现复杂映射开发一对一查询一对多查询多对多查询构建sqlsql构建对象介绍查询功能的实现新增功能的实现修改功能的实现删除功能的实现Mybatis注解开发单表操作 Mybatis的常用…

【运筹优化】Python 实现标签算法求解 ESPPRC 问题

文章目录一、标签算法介绍二、SPPRC 问题三、ESPPRC 问题四、Python 实现标签算法求解 ESPPRC 问题4.1 Solomn 数据集4.2 完整代码4.2.1 Functions.py4.2.2 LabelAlgo.py4.2.3 Main.py4.3 结果展示4.3.1 测试案例:c101.txt4.3.2 测试案例:r101.txt一、标…

2022年38女神节大促美妆、珠宝、母婴、保健电商数据回顾

近期,我们陆续接收到了品牌商家朋友们对于2022年女神节大促期间部分品类的数据需求,希望能对今年的大促活动有一个更宏观的认知、更精准的预测,从而拿到更好的数据效果。 为此,在距离大促开启一个月的备货阶段,鲸参谋决…

ChatGPT真的像媒体宣传的那样“四平八稳”吗?

最近ChatGPT非常的火爆,曝光度很高,很多官方媒体和个人的自媒体公众号都进行各种追逐。有些文案写的太好了,真的都要信了。其中有一篇“遨游四海,惊艳于某州”类似旅游宣传的文案。为了测试一下于是仿照他们的问话方式对ChatGPT进…

【服务器数据恢复】服务器raid5故障导致lvm结构损坏的数据恢复案例

服务器数据恢复环境: 服务器内搭建2组raid5磁盘阵列,每组raid5阵列包含4个磁盘,2组阵列都划分为lun并组为lvm结构,采用的ext3文件系统。 服务器故障: 一直raid5磁盘阵列中的一块硬盘由于未知故障离线,此时该…

【4】深度学习之Pytorch——如何使用张量处理时间序列数据集(共享自行车数据集)

表格数据 表格中的每一行都独立于其他行,他们的顺序页没有任何关系。并且,没有提供有关行之前和行之后的列编码信息。 表格类型的数据是指通过表格的形式表示的数据,它以行和列的方式组织数据。表格中的每一行代表一个数据项,每…

九龙证券|A股苏州板块迎来“200+”里程碑

2月10日,跟着裕太微登陆科创板,A股“姑苏板块”正式迎来第201位成员。姑苏也成为继京、沪、深、杭之后,第5个具有A股上市公司总数超越200家的城市。 现在,姑苏不仅生长为位居全国前列的“制作之都”,更成为资本市场高地…

通过对HashMap的源码分析解决部分关于HashMap的问题

HashMap第一次分配多大的空间我们查看resize()中的源码所以当我们没有传入默认容量的参数的时候,默认容量是16当传进一个20的初始参数时,数组的容量是多大所以当我们传入20的参数,这时创建的容量是32(2^5)对…

电子采购一体化解决方案

企事业数字化转型专家,提供各类应用解决方案。您身边的赋能小助手! 文章目录前言一、当下采购的痛点二、解决方案-供应商管理1.供应商管理三、解决方案-企业询价、供应商报价管理四、解决方案-采购订单五、送货、到货、订单管理总结前言 随着各类产业链…

世界上最大的12个超大规模自建数据中心企业

Hyperscalers 经常与托管服务提供商合作以满足需求并解决他们的需求。但随着它们变得越来越大,超大规模企业已经转向建立自己的数据中心。 规模是选择自建的关键决定因素,但其他变量也出现了,包括减少供应商、定制和控制设计以及获取可再生能…