【Sentinel】ProcessorSlotChain处理器插槽链与Node

news2024/11/24 15:49:44

文章目录

  • 1、Sentinel的基本概念
  • 2、ProcessorSlotChain
  • 3、Node

1、Sentinel的基本概念

Sentinel实现限流、隔离、降级、熔断等功能,本质要做的就是两件事情:

  • 统计数据:统计某个资源的访问数据(QPS、RT等信息)
  • 规则判断:判断限流规则、隔离规则、降级规则、熔断规则是否满足

这里的资源就是希望被Sentinel保护的业务,例如项目中定义的controller方法就是默认被Sentinel保护的资源。

2、ProcessorSlotChain

实现上述功能的核心骨架是一个叫做ProcessorSlotChain的类(ProcessorSlotChain即处理器插槽链)。这个类基于责任链模式来设计,将不同的功能(限流、降级、系统保护)封装为一个个的Slot,请求进入后逐个执行即可。

在这里插入图片描述

插槽链中的插槽分两大类,一类负责统计数据的构建(statistic):

  • NodeSelectorSlot:负责构建簇点链路中的节点(DefaultNode),将这些节点形成链路树
  • ClusterBuilderSlot:负责构建某个资源的ClusterNode,ClusterNode可以保存资源的运行信息(响应时间、QPS、block 数目、线程数、异常数等)以及来源信息(origin名称)
  • StatisticSlot:负责统计实时调用数据,包括运行信息、来源信息等

另一类插槽服务判断规则是否达到:

  • AuthoritySlot:负责授权规则(来源控制)
  • SystemSlot:负责系统保护规则
  • ParamFlowSlot:负责热点参数限流规则
  • FlowSlot:负责限流规则
  • DegradeSlot:负责降级规则

3、Node

Sentinel中的簇点链路是由一个个的Node组成的,Node是一个接口,包括下面的实现:
在这里插入图片描述
所有的节点都可以记录对资源的访问统计数据,所以都是StatisticNode的子类。按照作用分为两类Node:

  • DefaultNode:代表链路树中的每一个资源,一个资源出现在不同链路中时,会创建不同的DefaultNode节点。而树的入口节点叫EntranceNode,是一种特殊的DefaultNode
  • ClusterNode:代表资源,一个资源不管出现在多少链路中,只会有一个ClusterNode。记录的是当前资源被访问的所有统计数据之和。

根据这两种node的特点,可以知道它们用于不同的限流模式:

DefaultNode记录的是这个资源在当前链路中的访问数据,用来实现基于链路模式的限流规则。ClusterNode记录的是这个资源在所有链路中的访问数据,实现默认模式、关联模式的限流规则。

例如:我们在一个SpringMVC项目中,有两个业务:

  • 业务1:controller中的资源/order/query访问了service中的资源/goods
  • 业务2:controller中的资源/order/save访问了service中的资源/goods

则创建的链路如下:
在这里插入图片描述
此时,对于资源/goods,可使用DeafultNode对两个链路分别做限流,也可以直接用ClusterNode来对这个资源做统一的统计和整体的限流。当然,上面的EntranceNode,也是个资源,也有自身的Cluster来统计次数。

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

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

相关文章

FPGA输出lvds信号点亮液晶屏

1 概述 该方案用于生成RGB信号,通过lvds接口驱动逻辑输出,点亮并驱动BP101WX-206液晶屏幕。 参考:下面为参考文章,内容非常详细。Xilinx LVDS Output——原语调用_vivado原语_ShareWow丶的博客http://t.csdn.cn/Zy37p 2 功能描述 …

从零开始学习 Java:简单易懂的入门指南之Collection集合及list集合(二十一)

Collection集合及list集合 1.Collection集合1.1数组和集合的区别1.2集合类体系结构1.3Collection 集合概述和使用1.4Collection集合的遍历1.4.1 迭代器遍历1.4.2 增强for1.4.3 lambda表达式 2.List集合2.1List集合的概述和特点2.2List集合的特有方法2.3List集合的五种遍历方式2…

JS动态计算自动滚动距离

先上效果 具体实现代码&#xff08;如果用到vue项目中的css要取消scoped否则不生效&#xff09; 在这里插入代码片<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible"…

基于STM32的厨房环境监测系统

前言 本篇文章将之前所有的文章进行整合&#xff0c;是之前几篇文章的综合版。 MQ-2烟雾传感器模块功能实现&#xff08;STM32&#xff09; MQ-7一氧化碳传感器模块功能实现&#xff08;STM32&#xff09; dht11温湿度模块功能实现&#xff08;STM32&#xff09; 0…

返回序列中最大值第一次出现时对应的索引(位置)Series.idxmax()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 返回序列中最大值第一次 出现时对应的索引(位置) Series.idxmax() [太阳]选择题 以下说法错误的是? import pandas as pd apd.Series(data[1,6,None,5,6], index[A,B,C,D,E]) print(【显示】…

Spring MVC:域对象共享数据

Spring MVC 前言域对象共享数据使用 ModelAndView 向 request 域对象中共享数据使用 Map 、Model 或 ModelMap 向 request 域对象中共享数据使用 SesionAttributes 注解向 session 域对象中共享数据使用 Servlet API 向 application 域对象中共享数据 附 前言 在上一章中&…

发收一体的2.4G射频合封芯片Y62G,内置九齐MCU

宇凡微2.4GHz发收一体合封芯片Y62G是一款高度集成的系统芯片&#xff0c;融合了2.4G芯片G350和微控制器&#xff08;MCU&#xff09;功能&#xff0c;为开发人员提供了更好的设计自由度和成本效益的解决方案。以下是Y62G芯片的主要特点和优势&#xff1a; 高度合封集成 Y62G芯…

细说GNSS模拟器的RTK功能(二)应用实例01 — 硬件和软件设置

在之前的文章中&#xff0c;我们介绍了什么是RTK&#xff0c;接下来我们将为大家展示RTK使用实例&#xff0c;可以通过两种不同的方法来模拟RTCM的使用&#xff0c;一种是基于RTCM插件&#xff0c;另一种是基于多实例来模拟两个同步的射频信号。 RTK插件方法可以帮助没有基础接…

iOS系统下轻松构建自动化数据收集流程

在当今信息爆炸的时代&#xff0c;我们经常需要从各种渠道获取大量的数据。然而&#xff0c;手动收集这些数据不仅耗费时间和精力&#xff0c;还容易出错。幸运的是&#xff0c;在现代科技发展中有两个强大工具可以帮助我们解决这一问题——Python编程语言和iOS设备上预装的Sho…

RPC框架

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

将虚拟机网络适配器改为仅主机模式,Vmware弹出“仅主机模式适配器驱动程序似乎未运行

这个问题的原因是&#xff0c;主机上缺乏VMware安装后没有VMnet1和VMnet8网卡。 所以

2023年超爆火的15款AI设计软件

随着人工智能技术的快速发展&#xff0c;数字插画之外的“泛设计”行业的从业者也开始在AI中逐渐受益。可能很多设计师还停留在“AI设计软件只能做一些动漫风格插画”的认知中&#xff0c;实际上受到行业需求提升的刺激&#xff0c;软件厂商已经开始积极研究并发布更多针对特定…

uni——input的提示语(placeholder)修改样式等

案例说明 操控input的提示语 案例代码 <template><view><view><input type"text" placeholder"请输入内容" :placeholder-class"isDialogHidden?redColor:" /><button click"hideDialog">按钮</…

正中优配:股票k线图入门?

随着股票市场的不断发展&#xff0c;对股民们来说&#xff0c;了解股票行情变得越来越重要。而股票k线图能够帮助股民们更好地调查和剖析股票行情。但关于一些没有相关经历的新手来说&#xff0c;股票k线图可能会带来一些困惑。那么&#xff0c;股票k线图入门应该从哪些方面着手…

蓝牙资讯|2023Q2全球TWS耳机出货量同比增长15%

TechInsights 报告指出&#xff0c;2023 年二季度全球 TWS 耳机出货量同比增长 15%&#xff0c;收益同比增长 5.1%。 苹果仍以 17% 出货量份额和 43% 的收益份额主导 TWS 市场&#xff0c;但来自印度和中国厂商的竞争&#xff0c;使苹果的份额有所下降。 在收益方面&#x…

浏览器是如何验证SSL证书的?

事实上&#xff0c;SSL证书作为目前网站数据安全的第一道防线&#xff0c;已被大部分企业所熟知。然而&#xff0c;这份认知主要是关于SSL证书可以实现网站HTTPS加密保护及身份的可信认证&#xff0c;防止传输数据的泄露或篡改方面&#xff0c;对于浏览器到底是如何验证SSL证书…

python安装wind10

一、下载: 官网:Python Releases for Windows | Python.org 二、安装 双击下载的安装程序文件。这将打开安装向导。安装界面图下方两个框的" Use admin privileges wheninstalling py. exe和” Add python. exe to PATH"都要勾选,一定要勾选!一定要勾选!一定要勾选…

昆明Sectigo dv通配符https证书

Sectigo是近些年发展比较快速的CA认证机构&#xff0c;Sectigo比较重视国际发展&#xff0c;先后成立了亚太审核中心等机构&#xff0c;是一家全球知名的数字证书颁发机构&#xff0c;Sectigo成立几十年来在全球范围内都受到信任。 1.Sectigo旗下的通配符https证书是市场占有率…

商城结算系统_商户结算_商户结算流程_OctShop

商城财务系统是商城比较重要的大系统&#xff0c;主要管理着所有交易、结算、对账、清分、支付等的资金出入&#xff0c;如&#xff1a;商家结算&#xff0c;商家抽成、扫码收款、用户分润与账户余额&#xff0c;用户分润与账户积分&#xff0c;下单支付&#xff0c;订单退款&a…

el-dialog设置高度、使用resetFields清除表单项无效问题

初学者容易踩坑的的el-dialog、el-form问题 1. el-dialog设置高度2. el-form中表单项对不齐3. 使用resetFields清除表单项无效 1. el-dialog设置高度 在el-dialog中里面添加一个div设置固定高度&#xff0c;或者限制最小的高度。 <el-dialogtitle"选择图标"v-mod…