sentinel源码分析-04核心概念介绍

AquaCrop-OSPy学习笔记02:模型输入设置 AquaCrop-OSPy的输入设置 阅读详情

核心概念介绍

Resource

sentinel中的资源类,可以通过注解SentinelResource指定资源,具体的资源类是ResourceWrapper,包装了name和entryType属性,用户可以为需要保护的对象创建一个资源类,然后再配置相对于的规则就可以实现对资源的保护,同时资源和规则是解耦的,而且规则可以在运行时进行修改

Rule

围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。Sentinel 支持以下几种规则:流量控制规则、熔断降级规则、系统保护规则、来源访问控制规则 和 热点参数规则。

流量控制规则 (FlowRule)

重要属性:

Field说明默认值
resource资源名
count限流阈值
grade限流阈值类型,QPS 或线程数模式QPS 模式
limitApp流控针对的调用来源default,代表不区分调用来源
strategy调用关系限流策略:直接、链路、关联根据资源本身(直接)
controlBehavior流控效果(直接拒绝 / 排队等待 / 慢启动模式),不支持按调用关系限流直接拒绝

同一个资源可以同时有多个限流规则

private static void initFlowQpsRule() {
    List<FlowRule> rules = new ArrayList<>();
    FlowRule rule1 = new FlowRule();
    rule1.setResource(resource);
    // Set max qps to 20
    rule1.setCount(20);
    rule1.setGrade(RuleConstant.FLOW_GRADE_QPS);
    rule1.setLimitApp("default");
    rules.add(rule1);
    FlowRuleManager.loadRules(rules);
}
熔断降级规则 (DegradeRule)

重要属性:

Field说明默认值
resource资源名,即规则的作用对象
grade熔断策略,支持慢调用比例/异常比例/异常数策略慢调用比例
count慢调用比例模式下为慢调用临界 RT(超出该值计为慢调用);异常比例/异常数模式下为对应的阈值
timeWindow熔断时长,单位为 s
minRequestAmount熔断触发的最小请求数,请求数小于该值时即使异常比率超出阈值也不会熔断(1.7.0 引入)5
statIntervalMs统计时长(单位为 ms),如 60*1000 代表分钟级(1.8.0 引入)1000 ms
slowRatioThreshold慢调用比例阈值,仅慢调用比例模式有效(1.8.0 引入)

同一个资源可以同时有多个降级规则。

private static void initDegradeRule() {
    List<DegradeRule> rules = new ArrayList<>();
    DegradeRule rule = new DegradeRule(resource);
        .setGrade(CircuitBreakerStrategy.ERROR_RATIO.getType());
        .setCount(0.7); // Threshold is 70% error ratio
        .setMinRequestAmount(100)
        .setStatIntervalMs(30000) // 30s
        .setTimeWindow(10);
    rules.add(rule);
    DegradeRuleManager.loadRules(rules);
}
系统保护规则 (SystemRule)

Sentinel 系统自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。

系统规则包含下面几个重要的属性:

Field说明默认值
highestSystemLoadload1 触发值,用于触发自适应控制阶段-1 (不生效)
avgRt所有入口流量的平均响应时间-1 (不生效)
maxThread入口流量的最大并发数-1 (不生效)
qps所有入口资源的 QPS-1 (不生效)
highestCpuUsage当前系统的 CPU 使用率(0.0-1.0)-1 (不生效)
访问控制规则 (AuthorityRule)

很多时候,我们需要根据调用方来限制资源是否通过,这时候可以使用 Sentinel 的访问控制(黑白名单)的功能。黑白名单根据资源的请求来源(origin)限制资源是否通过,若配置白名单则只有请求来源位于白名单内时才可通过;若配置黑名单则请求来源位于黑名单时不通过,其余的请求通过。

授权规则,即黑白名单规则(AuthorityRule)非常简单,主要有以下配置项:

  • resource:资源名,即限流规则的作用对象
  • limitApp:对应的黑名单/白名单,不同 origin 用 , 分隔,如 appA,appB
  • strategy:限制模式,AUTHORITY_WHITE 为白名单模式,AUTHORITY_BLACK 为黑名单模式,默认为白名单模式
热点参数规则(ParamFlowRule):
属性说明默认值
resource资源名
count限流阈值
grade限流模式QPS 模式
durationInSec统计窗口时间长度(单位为秒)1s
controlBehavior流控效果(支持快速失败和匀速排队模式)快速失败
maxQueueingTimeMs最大排队等待时长(仅在匀速排队模式生效)0ms
paramIdx热点参数的索引,必填,对应 SphU.entry(xxx, args) 中的参数索引位置
paramFlowItemList参数例外项,可以针对指定的参数值单独设置限流阈值,不受前面 count 阈值的限制。仅支持基本类型和字符串类型
clusterMode是否是集群参数流控规则false
clusterConfig集群流控相关配置
网关限流规则(GatewayFlowRule)
属性说明默认值
resource资源名称,可以是网关中的 route 名称或者用户自定义的 API 分组名称
resourceMode规则是针对 API Gateway 的 route,还是用户在 Sentinel 中定义的 API 分组默认是 route
grade限流模式QPS 模式
count限流阈值
intervalSec统计时间窗口,单位是秒1
controlBehavior流量整形的控制效果,目前支持快速失败和匀速排队两种模式,默认是快速失败。快速失败
burst应对突发请求时额外允许的请求数目
maxQueueingTimeoutMs匀速排队模式下的最长排队时间,单位是毫秒,仅在匀速排队模式下生效
paramItem参数限流配置。若不提供,则代表不针对参数进行限流,该网关规则将会被转换成普通流控规则;否则会转换成热点规则

paramItem参数说明

  • parseStrategy:从请求中提取参数的策略,目前支持提取来源 IP、Host、任意 Header和任意 URL 参数四种模式
  • fieldName:若提取策略选择 Header 模式或 URL 参数模式,则需要指定对应的 header 名称或 URL 参数名称
  • pattern:参数值的匹配模式,只有匹配该模式的请求属性值会纳入统计和流控;若为空则统计该请求属性的所有值
  • matchStrategy:参数值的匹配策略,目前支持精确匹配、子串匹配和正则匹配
Context

源码中可以看到解释

/**
 * This class holds metadata of current invocation:<br/>
 *
 * <ul>
 * <li>the {@link EntranceNode}: the root of the current invocation
 * tree.</li>
 * <li>the current {@link Entry}: the current invocation point.</li>
 * <li>the current {@link Node}: the statistics related to the
 * {@link Entry}.</li>
 * <li>the origin: The origin is useful when we want to control different
 * invoker/consumer separately. Usually the origin could be the Service Consumer's app name
 * or origin IP. </li>
 * </ul>
 * <p>
 * Each {@link SphU}#entry() or {@link SphO}#entry() should be in a {@link Context},
 * if we don't invoke {@link ContextUtil}#enter() explicitly, DEFAULT context will be used.
 * A invocation tree will be created if we invoke {@link SphU}#entry() multi times in
 * the same context.
 * Same resource in different context will count separately, see {@link NodeSelectorSlot}.
 */

Context 代表调用链路上下文,贯穿一次调用链路中的所有 Entry, Context 是通过 ThreadLocal 维护的,在异步调用时会丢失context,它维护着当前调用链路的元数据,这个类包含了以下几个核心属性

  • name:名称即为调用链路入口名称
  • entranceNode:当前调用链的入口节点
  • curEntry:当前调用链的调用点
  • origin:当前调用链的调用来源

每次通过SphU.entry()或SphO.entry()时都需要在一个上下文中调用,如果没有则会使用一个默认的context,在一个上下文中多次调用SphU.entry()将会创建一个调用树,不同上下文中的相同资源将单独计数,这个就体现在NodeSelectorSlot类中有一个Map保存了DefaultNode,其中的key就是context的name。也就是不同的上线文对应不同的DefaultNode,针对相同资源会单独统计。

Entry

官方解释是

This class holds information of current invocation

每次资源调用都会创建一个 Entry,这个类包含了当前调用的信息,每次执行SphU.entry()时候如果能正常返回一个entry对象,则表示受保护的资源可以正常访问,否则会抛出一个BlockException标识发生限流。该类包含以下几个属性

  • createTime:创建时间,计算RT时候会用到
  • curNode:当前entry关联的node,记录了当前上下文下资源的统计信息
  • originNode:当前entry的调用来源
  • resourceWrapper:当前entry关联的资源
Node

node是sentinel中的核心概念,sentinel中主要有几种node类型

  • StatisticNode:主要功能就是负责统计各种数据,比如passQps,blockQps,rt等实时数据,包含秒级和分钟级两个滑动窗口结构
  • DefaultNode:链路节点,维度是resource + context。用于统计调用链路上某个资源的数据,维持树状结构,每个资源都关联着一个defaultNode,即使是相同的资源在不同的上下文中也会对应不同的defaultNode
  • ClusterNode:簇点,维度是resource。用于统计每个资源全局的数据不区分调用链路,只关心资源
  • EntranceNode:维度是context,每个上下文的入口节点,直接挂载到root下,对应某个 Context 入口的所有调用数据
  • OriginNode:维度是resource + origin,本身就是StatisticNode,代表了请求来源的信息统计
Metric

StatisticNode就是通过metric类进行数据统计的,他本身只是一层封装,底层还是通过window滑动窗口统计,具体实现是ArrayMetric

Slot

翻译过来就是槽位的意思,slot是sentinel中非常重要的一个概念,这个就是责任链模式的体现,sentinel的工作流程就是围绕着一个个插槽所组成的插槽链来展开的。需要注意的是每个插槽都有自己的职责,他们各司其职完好的配合,通过一定的编排顺序,来达到最终的限流降级的目的。默认的各个插槽之间的顺序是固定的,因为有的插槽需要依赖其他的插槽计算出来的结果才能进行工作但是这并不意味着我们只能按照框架的定义来,sentinel 通过 SlotChainBuilder
作为 SPI 接口,使得 Slot Chain 具备了扩展的能力。我们可以通过实现 SlotsChainBuilder
接口加入自定义的 slot 并自定义编排各个 slot 之间的顺序,从而可以给 sentinel 添加自定义的功能。同时同一个资源会全局共享一个SlotChain执行链。

  • NodeSelectorSlot:负责收集资源的路径,并将这些资源的调用路径,以树状结构存储起来,用于根据调用路径来限流降级;
  • ClusterBuilderSlot:则用于存储资源的统计信息以及调用者信息,例如该资源的 RT, QPS, thread count 等等,这些信息将用作为多维度限流,降级的依据;
  • StatisticSlot:则用于记录、统计不同纬度的 runtime 指标监控信息;
  • FlowSlot:则用于根据预设的限流规则以及前面 slot 统计的状态,来进行流量控制;
  • AuthoritySlot:则根据配置的黑白名单和调用来源信息,来做黑白名单控制;
  • DegradeSlot:则通过统计信息以及预设的规则,来做熔断降级;
  • SystemSlot:则通过系统的状态,来控制总的系统负载;
    在这里插入图片描述
深入浅出之CSPBlock模块(YOLO) YOLO CSPX模块是YOLO系列算法中的一个重要组成部分,它通过跨阶段部分连接的方式减少了计算量,同时保证了模型的准确率。在YOLOv4及后续版本中,CSPX模块被广泛应用于主干网络和Neck结构中,为模型提供了强大的特征提取和融合能力。 阅读详情

相关推荐

Cadence Allegro 17.4学习记录开始02-原理图Capture CIS 17.4

Allegro的第一方网表与第三方网表有以下几个区别点;Ø 与Allegro实现交互式操作的是第一方网表,第三方网表时不可以实现交互式操作;Ø 第三方网表不能将器件的Value属性导入到PCB中,输出时以封装属性来代替Value属性,第一方网表是可以的;Ø 网表导入到PCB中时,第三方的网表需要指定事先指定好PCB封装库文件,并产生Device文件,才可以将网表导入到PCB中,第一方网表则可以直接导入。

qq_31444421的博客 1万+

Sentinel源码剖析之执行流程

上述讲了SCG Sentinel执行流程,这里给一个SpringBoot集成Sentinel的执行流程,两则本质上执行流程一致StatisticSlot计数,底层通过LongAdder实现,why?1、LongAdder底层通过cas保证高并发情况下的线程安全2、LongAdder底层通过add,decrement,sum这些现成的API可以使用熔断器在哪计数?下篇写为什么要用滑动窗口算法?原理是什么?怎么实现?下篇写。

白鸽 1230

RT-Thread Studio与CubeMX联合编程(超级详细)

RT-Thread Studio与CubeMX联合编程 本文章参考以下文章: https://blog.youkuaiyun.com/qq_40824852/article/details/122596043 https://zhuanlan.zhihu.com/p/395106066 https://blog.youkuaiyun.com/m0_37697335/article/details/108890584 一、简介 经过上次对RT-Thread Studio的初步尝试,发现RT-Thread Studio中存在官方支

zhuzhu的博客 3万+

【微服务】Sentinel 适配网关进行流量控制

外部请求进入 API Gateway 时会经过 Sentinel 实现的 filter,其中会依次进行路由/API 分组匹配、请求属性解析和参数组装。Sentinel 会根据配置的网关流控规则来解析请求属性,并依照参数索引顺序组装参数数组,最终传入SphU.entry(res, args)中。Sentinel API Gateway Adapter Common 模块向 Slot Chain 中添加了一个GatewayFlowSlot,专门用来做网关规则的检查。......

qq_57756904的博客 3288

iTunes登录协议逆向与自动化实现

本文详细解析了iTunes登录协议的逆向工程与自动化实现方法,涵盖请求体构造、签名生成和会话管理等关键技术。通过XML结构解析、X-Apple-ActionSignature生成原理及完整登录流程实现,帮助开发者高效完成iTunes自动化登录,提升工作效率。

weixin_26938645的博客 938

【专业书1】量化交易——从入门到精通

股票季节性策略几乎失效了,但商品期货的仍有效,因为其季节性需求源于真实的经济需求而非投机。交易策略获利的前提:交易价格处于均值回归(低价时买入)或动量状态(降价时先做空后以更低价买入),否则在随机游走状态下是无法有效交易的。构建交易策略实际上是在决定:在特殊条件、特定时间尺度下价格趋势的呈现(均值回归/趋势走势),以及用什么价格作为初始判断的参考价格。如果以高夏普比率为目标,需要更高的交易频率:基于大数定律,押注越多,偏离均值收益的偏差就越小。买同比最好的股票,卖同比最差的股票。但在不同的时间尺度下可以。

weixin_44589682的博客 1544

18-Sentinel实战:网关层流量如何整形?

这节讲一下木谷博客系统中网关的流控整形,对于Sentinel一些基础内容不再详细介绍了,偏向实战。 对于Sentinel有不清楚的可以看看笔者的这两篇文章: Spring Cloud Gateway 整合阿里 Sentinel网关限流实战! 阿里限流神器Sentinel入门大全! 网关层作为微服务的门户,对某些热点业务的限流至关重要。 网关集成Sentinel需要三个依赖,如下: <!--①sentinel依赖--> <dependency> <groupId&gt

码猿技术专栏 603

PCB印刷电路缺陷检测实战:从数据集准备到模型训练全流程解析

本文详细解析了PCB缺陷检测从数据集准备到模型训练的全流程。重点介绍了PKU-Market-PCB数据集的特点与下载方法,并提供了数据格式转换、模型选择(如YOLOv8)与训练配置的实战代码。针对PCB小目标检测的难点,文章给出了数据分析和模型优化的具体策略,帮助读者构建高效的缺陷检测系统。

weixin_29065791的博客 546

Sentinel核心架构源码剖析(经典)

sentinel

gb4215287的博客 287

使用Python与OpenCV实现基于霍夫变换的圆形缺陷检测与定位详细教程

本文详细探讨了如何使用Python和OpenCV库,通过图像边缘检测和霍夫变换实现圆形对象的检测与缺陷定位。我们不仅介绍了算法的基本原理,还通过具体的代码示例展示了如何在实际应用中实现这些技术。对于工业检测和医学影像分析,本文的方法提供了高效且易于实现的解决方案。随着图像处理技术的不断发展,未来我们可以期待更多新算法和新技术的应用,如深度学习与传统方法的结合,以及多传感器融合技术的引入,这将进一步提升缺陷检测与定位的效率和准确性。

qq_38334677的博客 1295

Android 9.0 系统framework关于忘记开机锁屏密码进不去系统桌面清除锁屏密码问题的解决

在9.0的系统rom定制化开发中,在一些产品中带锁屏密码的功能中,系统默认是滑动解锁,但是客户会设置锁屏密码,在某些时候会 忘掉锁屏密码,导致需要进入恢复出厂设置然后才能进入系统桌面,这样就导致系统的保存的资料都丢失了,所以需要要求提供接口 在下拉状态栏中或者系统服务中在忘记锁屏密码后不恢复出厂设置的情况下,可以清除锁屏密码,接下来就来实现功能

安卓兼职framework和app工程师的博客 615

Sentinel Gateway 网关流控实现原理和源码处理流程

网关流控实现原理 Sentinel 1.6.0 引入了 Sentinel API Gateway Adapter Common 模块,此模块中包含网关限流的规则和自定义 API 的实体和管理逻辑: GatewayFlowRule:网关限流规则,针对 API Gateway 的场景定制的限流规则,可以针对不同 route 或自定义的 API 分组进行限流,支持针对请求中的参数、Header、来源 IP 等进行定制化的限流。 ApiDefinition:用户自定义的 API 定义分组,可以看做是一些 URL 匹

qq_33210338的博客 1415

PyTorch深度学习实战(24)——使用U-Net架构进行图像分割

图像分割 (Image segmentation) 是计算机视觉领域中的一个重要任务,旨在将图像划分为具有语义信息的不同区域或对象。与目标检测任务不同,图像分割要求像素级别的精确定位和分类,将每个像素标记为属于哪个类别或属于哪个区域。在本节中,我们将介绍图像分割的基本概念,并训练一个基于 U-Net 架构的图像分割模型。

盼小辉丶的博客 1万+

Sentinel 源码分析入门【Entry、Chain、Context】

后面的源码分析就是围绕图中红色圈出来的部分这个顺序去分析的,这个 Slot 的顺序也是 Sentinel 的工作顺序。ContextUtil#enter 方法是真正的创建 Context 的方法,该方法先会判断是否是默认的 ContextName,如果是默认的 ContextName 就抛出异常,否则调用 ContextUtil#trueEnter 创建 Context,该方法会经过一系列的判断,最终返回一个 Context,这里返回的 Context 可能是 NullContext。

weixin_42118323的博客 1368

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

RuoYi-Vue-Plus 与 RuoYi-Cloud-Plus 高端进阶 源码分析 系列教程

高端进阶 源码分析 系列教程

李虹柏的博客 6万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Sentine 源码分析之--ParamFlowSlot

ParamFlowSlot#entry 方法逻辑非常简单,先判断当前规则是否有热点参数限流规则,如果没有直接进入下一个 Slot,如果有限流规则,则执行限流规则判断后进入下一个 Slot,我们重点分析执行限流规则源码。ParamFlowChecker#fallbackToLocalOrPass 方法的逻辑十分简单,就是判断是执行单机模式模式的热点规则校验,默认是直接通过规则,而不执行单机模式的热点规则校验。欢迎提出建议及对错误的地方指出纠正。当前规则是以 QPS 限流。

weixin_42118323的博客 870

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

高可用之限流-06-slide window 滑动窗口 sentinel 源码

1、现在假设当前时间是2018-12-15 14:30:00,对应毫秒是:1544855400000ms,所以timeId = 1544855400000 / 500为:3089710800,对应的idx为0,窗口开始时间time为 time - time % windowLengthInMs还是1544855400000;如果当前窗口的开始时间time大于old的开始时间,则说明old窗口已经过时了,将old的开始时间更新为最新值:time;6、由于是新的时间窗口,old为空,则重新创建。

1044

Sentine 源码分析之--NodeSelectorSlot、ClusterBuilderSlot、StatisticSlot

前面我们对 Sentinel 有了一个比较系统的认知,本篇我们正式开始分析 Sentinel 的源码,我们知道 Sentinel 使用了责任链模式,根据 Sentinel 官方提供的流程图,我们知道 NodeSelectorSlot 是整个链路的入口,下面我们开始分析 Sentinel 源码。AbstractLinkedProcessorSlot#fireEntry 是一个通用方法,每个 Slot 执行完毕后都会调用这个方法,去判断是否有下一个 Slot。欢迎提出建议及对错误的地方指出纠正。

weixin_42118323的博客 1561

微服务(Microservice)系列文章

文章目录Microservice1. SpringBoot2.1 基本概念2.2 应用分析2.3 源码分析2.3.1 核心流程源码分析2.3.2 注解源码分析2.3.3 扩展类源码分析2.3.4 关键机制源码分析2.4 问题分析2. SpringCloud2.1 Eureka2.2 LoadBalancer2.3 Feign2.4 Hystrix3. SpringCloudAlibaba3.1 Nacos3.2 Sentinel4. Dubbo4.1 基本介绍4.2 基本应用4.3 源码分析 Microse

bigdata-page 371

Java面试通关⑮:SpringCloud微服务全集

摘要:SpringCloud是目前主流微服务生态标准、中高级后端必备技术栈,大厂社招面试高频深挖微服务架构、组件原理、服务治理、分布式问题。多数开发者只会CRUD调用组件,不了解注册发现、负载均衡、网关路由、配置中心、服务熔断限流底层原理,面试架构题短板明显。本篇全覆盖SpringCloud全套核心组件、原理、选型、生产坑点、架构设计,吃透微服务生态,搞定微服务面试与架构落地。

折哥|智能物流与Java实战,副高数据库工程师。深耕出版社物流WMS/OMS(线体/立库/VGA),也分享Java进阶与OMS电商对接。Oracle→PG实战派。相信沉淀可迁移能力,分享通用技术,不藏不虚。 442

www.java www.java_Javadoop_首页

我是来自魔都的程序员,在互联网摸爬滚打了很多年。本站是我平时写的一些博客文章,主要关注 java 领域相关技术,希望来到这里的读者能找到些有点用的。最新文章: 聊聊 APM 以及介绍下我们的内部实现 (更新于 2021-01-30)最新文章: 聊聊 HTTPS 的工作原理 (更新于 2020-04-20)最新文章: 深入理解堆外内存 Metaspace (更新于 2019-12-24)最新文章: ...

weixin_35245810的博客 351

SpringBoot3+SpringCloud2024 全套教程,收藏好

大家好,我是路人。今天给大家带来的了 3 套最新教程,都是目前必备的技能,文末附地址SpringBoot3 教程SpringBoot3 响应式编程教程SpringCloud2024 最新版教程SpringBoot3 教程 01.SpringBoot3教程简介 02.快速入门-特性介绍 03.快速入门-示例Demo 04.快速入门-Demo小结 05.快速入门-SpringInitializer ...

路人甲Java 768

Java面试通关⑭:分布式理论与架构全集

摘要:分布式架构是中高级开发分水岭、大厂面试核心拉分模块,微服务、集群部署、分布式事务、一致性问题全部基于分布式理论。多数开发者长期写单体业务,对分布式基础理论、一致性协议、分布式事务、限流熔断降级一无所知,无法应对架构面试与分布式项目开发。本篇从零拆解分布式核心理论、CAP/BASE、一致性算法、分布式事务、高可用架构,打通分布式架构思维,进阶中高级后端开发。

折哥|智能物流与Java实战,副高数据库工程师。深耕出版社物流WMS/OMS(线体/立库/VGA),也分享Java进阶与OMS电商对接。Oracle→PG实战派。相信沉淀可迁移能力,分享通用技术,不藏不虚。 496

3 步把视频号视频解密存到本地

晚上刷到一段视频号里讲做菜的手艺,关掉页面就找不到了,你想把它存下来慢慢回看。存下来的文件却打不开,这就是加密视频下载绕不开的坎。res-downloader 这款跨平台视频下载工具,能把视频号、抖音这类平台的内容抓下来并解密,帮你完成真正的视频资源获取,还支持 m3u8 流媒体下载。 ## 🎬 三种最常用的存法 你只是想在网页版视频号里看完一段就顺手留下,点开它的页面正常播放,软件左侧的资

gitblog_01140的博客 404

sentinel网关流量控制

sentinel网关流量控制

qq_36070104的博客 1018

Sentinel用法解析

Sentinel用法解析

qq_45443475的博客 6455
上一篇: sentinel源码分析-03构建执行链
下一篇: sentinel源码分析-05核心链路调用
胖柯G
博客等级 码龄10年 453粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值