搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
IT小白
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
springboot整合ehcache实现二级缓存踩坑_cacheable 踩坑
2
使用mac自带服务器(一行命令即可启动)_mac起服务
3
Sqoop从关系型数据库往HDFS上导入及导出文件_sqoop怎么指定输入到hdfs的文件名
4
OLTP与OLAP数据库_数据库分olap
5
MGCtoken与IMtoken哪个好?安全吗?
6
【STM32学习笔记】(8)——SysTick系统定时器详解_systick->val
7
Oracle学习(入门)
8
kotlin之foreach跳出循环_kotlin foreach index
9
DataHub安装配置详细过程_datahub部署
10
微信小程序电子书城销售系统|商城|电商系统丨可以android studio运行_在线图书商城系统androidstudio
当前位置:
article
> 正文
Sentinel学习笔记
作者:IT小白 | 2024-06-20 22:05:15
赞
踩
sentinel学习笔记
一、定义
Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。
二、Sentinel特征
丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断下游不可用应用等。
完备的实时监控: Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
广泛的开源生态: Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与SprinCloud、Dubbo、 gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
完善的 SPI 扩展点: Sentinel 提供简单易用、完善的 SPI 扩展点。您可以通过实现扩展点,快速的定制逻辑。 例如定制规则管理、适配数据源等。
三、Sentinel 工作原理
基本概念
资源
资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用 的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。 只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。
规则
围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。
Sentinel工作主流程
在 Sentinel 里面,所有的资源都对应一个资源名称(resourceName),每次资源调用都会创建一个 Entry 对象。Entry 可以通过对主流框架的适配自动创建,也可以通过注解的方式或调用 SphU API 显式创建。Entry 创建的时候,同时也会创建一系列功能插槽(slot chain),这些插槽有不同的职责。
NodeSelectorSlot 负责收集资源的路径,并将这些资源的调用路径,以树状结构存储起来,用于根据调用路径来限流降级;
ClusterBuilderSlot 则用于存储资源的统计信息以及调用者信息,例如该资源的 RT, QPS, thread count 等等,这些信息将用作为多维度限流,降级的依据;
StatisticSlot 则用于记录、统计不同纬度的 runtime 指标监控信息;
FlowSlot 则用于根据预设的限流规则以及前面 slot 统计的状态,来进行流量控制;
AuthoritySlot 则根据配置的黑白名单和调用来源信息,来做黑白名单控制;
DegradeSlot 则通过统计信息以及预设的规则,来做熔断降级;
SystemSlot 则通过系统的状态,例如 load1 等,来控制总的入口流量;
四、Sentinel快速开始
在官方文档中,定义的Sentinel进行资源保护的几个步骤:
1. 定义资源
2. 定义规则
3. 检验规则是否生效
Sentinel资源保护的方式
API实现
1. 引入依赖
2. 编写测试逻辑
测试效果
缺点:业务侵入性很强,需要在controller中写入非业务代码,配置不灵活 若需要添加新的受保护资源 需要手动添加 init方法来添加流控规则。
@SentinelResource注解实现
@SentinelResource 注解用来标识资源是否被限流、降级。
blockHandler: 定义当资源内部发生了BlockException应该进入的方法(捕获的是Sentinel定义的异常)
fallback: 定义的是资源内部发生了Throwable应该进入的方法
exceptionsToIgnore:配置fallback可以忽略的异常
1.引入依赖
2.配置切面支持
3.UserController中编写测试逻辑,添加@SentinelResource,并配置blockHandler和fallback
4.编写ExceptionUtil,注意如果指定了class,方法必须是static方法
5.流控规则设置可以通过Sentinel dashboard配置客户端需要引入 Transport 模块来与 Sentinel 控制台进行通信。
6. 启动 Sentinel 控制台
下载控制台 jar 包并在本地启动。
1 #启动控制台命令。
2 java ‐jar sentinel‐dashboard‐1.8.0.jar。
用户可以通过如下参数进行配置:
-Dsentinel.dashboard.auth.username=sentinel 用于指定控制台的登录用户名为 sentinel;
-Dsentinel.dashboard.auth.password=123456 用于指定控制台的登录密码为 123456;如果省略这两个参数,默认用户和密码均为sentinel;
-Dserver.servlet.session.timeout=7200 用于指定 Spring Boot 服务端 session 的过期时间,如 7200 表示 7200 秒;60m 表示 60 分钟,默认为 30 分钟;
访问http://localhost:8080/#/login ,默认用户名密码: sentinel/sentinel
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/IT小白/article/detail/741051
推荐阅读
article
Java
最新
Spring
Cloud
Alibaba进阶之路:
Sentinel
+
Nacos
持久化,字...
以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的。_springc...
赞
踩
article
VMware
Workstation
Pro
17
虚拟机
超级详细搭建(含
redis
,
nacos
,do...
今天从零搭建一下
虚拟机
的环境,把
nacos
,
redis
等微服务组件还有数据库搭建到里面,首先看到的是我们最开始下载VMw...
赞
踩
article
微
服务
系列:
Spring
Cloud
Alibaba 之
Sentinel
详细入门_给网关
服务
接s...
Sentinel
是阿里中间件团队开源的,面向分布式
服务
架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制、...
赞
踩
article
springcloud
-
alibaba
sentinel
简单入门一
_
阿里巴巴
sentinel
s...
官方文档:quick-start下载地址: Releases ·
alibaba
/Sentinel · GitHub 他...
赞
踩
article
Spring
Cloud
Alibaba
Sentinel
_springcloudalibaba s...
【源码地址】:GitHub_springcloudalibaba
sentinel
springcloudalibaba ...
赞
踩
article
Spring
Cloud
Gateway
集成
Sentinel
(二)实现
nacos
动态保存配置_r...
sentinel gateway
nacos
持久化规则_
rule
-
type
: gw-
flow
rule
-
type
: gw...
赞
踩
article
spring
cloud
alibaba
-
gateway
使用以及整合
sentinel
_
spring
-...
gateway
网关的基本介绍,
gateway
的使用以及整合
sentinel
进行网关层限流_
spring
-
cloud
-al...
赞
踩
article
微服务系列:服务网关
Spring
Cloud
Gateway
集成
Sentinel
限流
_gat...
Sentinel
是阿里开源的一款面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应...
赞
踩
article
spring
.
cloud
.
sentinel
.
eager
=
true
这个有什么作用...
需要注意的是,
eager
模式可能会导致应用程序启动时间略微延长,因为在启动时就需要进行Sentinel的初始化工作。是S...
赞
踩
article
SpringCloud Alibaba微
服务
--
Sentinel
的使用(保姆级)_
alibaba
...
sentinel
的使用
sentinel
保姆级教程
sentinel
的下载及启动_
alibaba
sentinel
aliba...
赞
踩
article
SpringCloud
框架集成
Sentinel
保姆
级
教程
_
springcloud
继承 sentine...
什么是熔断和降
级
服务的稳定是公司可持续发展的重要基石,随着业务量的快速发展,一些平时正常运行的服务,会出现各种突发状况,...
赞
踩
article
springcloud--
Sentinel
_springcloud
sentinel
...
参考:https://blog.csdn.net/ThinkWon/article/details/103770879官...
赞
踩
article
SpringCloud Alibaba
Sentinel
(史上最详细)_
spring
-
cloud
-s...
Sentinel
: 分布式系统的流量防卫兵一.
Sentinel
简介二.
Sentinel
安装与使用1.下载2.启动3.登录...
赞
踩
article
网关
流控
实现
原理 (
gateway
集成
Sentinel
)_
gateway
sentinel
...
网关
流控
实现
原理当通过 GatewayRuleManager 加载
网关
流控
规则(GatewayFlowRule)时,无论...
赞
踩
article
5.
SpringCloud
:
Sentinel
服务
流控与
服务
降级_
spring
.
cloud
.senti...
在
Sentinel
控制台中,对payment
服务
新增一条流量规则,如下:另:若QPS阈值为0,则相当于全部按失败处理。在...
赞
踩
article
网关
服务
限流熔断降级【
Gateway
+
Sentinel
】_若依项目基于
gatewaysentinel
...
这是直接针对该微
服务
进行
网关
限流等操作。直接点击流控,设置QPS=1、流控模式=直接(默认)、流控效果=快速失败(默认)...
赞
踩
article
微
服务
学习 |
Spring
Cloud
中使用
Sentinel
实现
服务
限流
_springclo...
本篇文章主要介绍了
Sentinel
的两种实现
限流
的方式。作者:鼠鼠我捏,要死了捏_
springcloud
sentine...
赞
踩
article
springcloud
第4季
springcloud
-
alibaba
之
sentinel
(限流,熔断)...
sentinel
是面向
分布式
、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从等多个维度来帮助开发者保障服务的...
赞
踩
article
Spring
Cloud
Gateway
整合
sentinel
实现流控熔断_
spring
.clo...
在微服务架构中,网关层可以屏蔽外部服务直接对内部服务进行调用,对内部服务起到隔离保护的作用,网关限流,顾名思义,就是通过...
赞
踩
article
springcloud
-
限流
(
gateway
、
sentinel
)_
springcloud
senti...
放令牌这个动作是持续不断的进行,如果桶中令牌数达到上限,就丢弃令牌,所以就存在这种情况,桶中一直有大量的可用令牌,这时进...
赞
踩
相关标签
java
面试
学习
docker
容器
运维
spring cloud alibaba
Sentinel
Java
微服务
spring cloud
sentinel
gateway
spring