SpringCloud Alibaba Sentinel服务流控快速入门

【springcloud 微服务】Spring Cloud Alibaba整合Sentinel详解 Spring Cloud Alibaba整合Sentinel详解 阅读详情

Sentinel

Sentinel是什么

独立于项目外的 服务流量控制台,可以用于熔断 防止服务崩溃无响应,服务重启,流量限制等
在这里插入图片描述

能做什么 针对于什么场景

sentinel给我们带来的服务

  • Sentinel 独立于项目外,开箱即用
  • 控制台可以可视化的实时监控和服务规则配置
  • 可以无缝配合cloud的注册中心 最佳匹配 nacos,也可以使用其他的如 Eureka apollo zookeeper等

解决了什么场景问题

  • 服务雪崩
  • 服务降级
  • 服务熔断
  • 服务限流

在这里插入图片描述

如何获取

下载地址 :sentinel下载地址
文档地址 :sentinel文档地址

Sentinel 组件由两部分组成

  • 使用sentinel的服务
  • sentinel的服务控制台

安装环境我们只需要有 java 8 以上就可以了
下载完成之后,直接运行java -jar 启动查看即可
java -jar sentinel-dashboard-1.7.0.jar

我们只需要访问 默认的启动端口就可以看到 sentinel的控制台了
账号和密码均为 :sentinel

演示工程 8401

我们主要以介绍sentinel实战,对于演示工程,选核心部分展示
核心依赖


        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-nacos</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

演示项目配置

server:
  port: 8401

spring:
  application:
    name: cloudalibaba-sentinel-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
    sentinel:
      transport:
        dashboard: localhost:8080
        port: 8719  #默认8719,假如被占用了会自动从8719开始依次+1扫描。直至找到未被占用的端口

management:
  endpoints:
    web:
      exposure:
        include: '*'

编写一个controller 来演示

@RestController
public class FlowLimitController
{
    @GetMapping("/testA")
    public String testA() {
        return "------testA";
    }

    @GetMapping("/testB")
    public String testB() {

        return "------testB";
    }
}
 

之后启动nacos和 sentinel 这个时候你访问sentinel 会发现什么也没有
为什么?
应为 sentinel是懒加载的,我们访问其中一个方法,就会在sentinel中看到我们项目
在这里插入图片描述

流控规则

基础流控

我们可以看到面板
在这里插入图片描述

  • 资源名:唯一名称,默认请求路径

  • 针对来源: Sentinel可以针对调用者进行限流,填写微服务名,默认default (不区分来源)阈值类型/单机阈值:

  • QPs(每秒钟的请求数量):当调用该api的QPS达到阈值的时候,进行限流。线程数:当调用该api的线程数达到阈值的时候,进行限流

  • 是否集群:不需要集群

  • 流控模式:

    • 直接: api达到限流条件时,直接限流
    • 关联:当关联的资源达到阈值时,就限流自己
    • 链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,就进行限流)【api级别的针对来源】
  • 流控效果:

    • 快速失败:直接失败,抛异常
    • Warm Up:根据codeFactor (冷加载因子,默认3)的值,从阈值codeFactor,经过预热时长,才达到设置的QPS阈值
    • 排队等待:匀速排队,让请求以匀速的速度通过,阈值类型必须设置为QPS,否则无效

直接失败

快速失败,配置如下:

在这里插入图片描述

之后我们快速访问 testa 就会发现 Blocked by Sentinel (flow limiting)
触发了 sentinel的默认提示
在这里插入图片描述

关联

当关联的资源达到阈值时,就限流自己
在这里插入图片描述
只要我们访问b 超过了 qps a就会把自己限流

高级配置

预热 Warm Up

**Warm Up ( RuleConstant.CONTROL_BEHAVIOR_UARM_uP)**方式,即预热/冷启动方式。当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动”,让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。详细文档可以参考流量控制-Warm Up文档,具体的例子可以参见
WarmUpFlowDemo。

公式:阈值除以coldFactor(默认值为3),经过预热时长后才会达到阈值
默认coldFactor为3,即请求QPS从threshold/3开始,经预热时长逐渐升至设定的QPS阈值。

适合应用场景
大量数据情况 : 如秒杀
在这里插入图片描述
在这里插入图片描述
这里设置好之后,我们去访问,会发现,当到了阈值之后,慢慢的还是可以访问,直到10

排队等待

匀速排队
匀速排队( RuleConstant.CONTROL_BEHAVIOR_RATE_LTIMITER)方式会严格控制请求通过的间隔时间,也即是让请求以均匀的速度通过,对应的是漏桶算法。详细文档可以参考流星控制–匀速器模式,具体的例子可以参见PaceFlowDemo。
在这里插入图片描述

在这里插入图片描述
匀速排队,阈值必须设置为QPS
在一定时间内,逐渐处理进入到的请求,而不是第一时间拒绝请求

总结

Sentinel这个控制台,十分到强大,给我们带来了很多很多可以使用的服务规则,我们这里主要介绍了流控,这只是Sentinel的冰山一角,

在这里插入图片描述

Sentinel 可以看到,还有很多模块可以根据不同的场景和需求是了解,
天道酬勤,我们一起进步吧

NVIDIA Orin AGX开发环境搭建避坑指南:从Ubuntu 22.04到ROS2完整配置流程 本文详细介绍了NVIDIA Orin AGX开发环境搭建的全流程,从Ubuntu 22.04系统安装到ROS2深度优化,涵盖驱动部署、CUDA环境配置、散热与功耗管理等关键步骤。特别针对Orin AGX的特性提供了实用避坑指南和性能优化技巧,帮助开发者高效完成开发环境配置。 阅读详情

相关推荐

实战避坑:泛微E9流程接口与单点登录(SSO)开发全解析(含自定义Action、Restful API与免密登录)

本文深入解析泛微E9流程接口与单点登录(SSO)开发中的关键技术与避坑指南,涵盖自定义Action开发、Restful API鉴权机制及跨系统单点登录实现。通过实战案例与代码示例,帮助开发者高效完成二次开发,解决系统集成中的数据孤岛问题,提升企业信息化建设效率。

weixin_42549451的博客 672

Sentinel服务流控、熔断和降级

Sentinel服务流控、熔断和降级

HGW的博客 6328

南京邮电大学电工电子实验(二)复习一

本文给电工电子实验(二)的复习进行一些知识点的提醒

YOUXISUN的博客 2957

服务限流治理

限流在日常生活中也很常见,比如节假日你去一个旅游景点,为了不把景点撑爆,管理部门通常会在外面设置拦截,限制景点的进入人数(等有人出来之后,再放新的人进去)。对应到计算机中,限流是从用户访问压力的角度来考虑如何应对故障,保护系统不会在过载的情况下出现问题,这就就需要限流。限流只允许系统能够承受的访问量进来,超出系统访问能力的请求将被丢弃。比如要搞活动,秒杀等,通常都会限流。

sinat_34814635的博客 1133

Qt加载百度地图详细流程(附带报错解决方法)

一篇文章看懂Qt如何加载出百度地图......

qq_60018273的博客 1603

Ai数字人直播系统搭建,本地源码部署,源码交付--支持OEM系统贴牌

AI 数字人直播系统是利用人工智能技术创建虚拟主播,并通过数字化技术实现直播互动的系统1。以下是其相关介绍:Ai数字人直播系统搭建,本地源码部署,源码交付--支持OEM系统贴牌。

weixin_ggwwsscc的博客 617

服务流控(Sentinel)

Sentinel 流控代码实现保姆级教程

问天丶天问 941

水下探测小白必看:单波束vs多波束声呐,5分钟搞懂核心区别

本文为水下探测新手清晰解析了单波束与多波束声呐的核心区别。单波束声呐如同精准的“手电筒”,进行逐点扫描,适用于定点测深和目标探测;而多波束声呐则像“聚光灯”,能一次性覆盖一个扇区,高效获取海底地形三维信息,是海底测绘和水下三维建模的理想选择。文章通过生动的比喻和对比表格,帮助读者快速理解两者原理、效率差异及适用场景。

linux6sysadmin的博客 1043

全面解析微服务保护(二、流量控制)

可以看到这⾥200个⽤户,50秒内发完,QPS为4,超过了我们设定的阈值2 ⼀个http请求是访问/order/save:运⾏的结果:完全不受影响。重启服务,访问/order/query和/order/save,可以查看到sentinel的簇点链路规则中,出现了新的资。需求:给/order/prod/{pid}这个资源设置限流,最⼤QPS为10,利⽤排队的流控效果,超时时⻓设置为5s。配置流控规则,当/order/ update资源被访问的QPS超过5时,对/order/query请求限流。

m0_73857228的博客 1075

【论文复现】Applied Intelligence 2025:Auto-PU正例无标签学习的自动化实现与GPT-5.4辅助编程实战

正例-无标签学习(Positive-Unlabelled Learning, PU Learning)是机器学习领域处理"只有正例标签,负例完全未知"场景的重要技术。本文基于2025年发表于Applied Intelligence的最新研究成果,详细阐述如何从零复现Auto-PU框架(包含GA-Auto-PU、BO-Auto-PU、EBO-Auto-PU三种优化器)。

nmdbbzcl的博客 1388

YOLO11涨点优化:特征融合改进 | 引入BiFPN (双向特征金字塔) 加权融合机制,自适应分配不同尺度特征权重

YOLO11与BiFPN特征融合技术解析 本文深入剖析了YOLO11目标检测架构及其BiFPN特征融合机制的关键创新。2024年发布的YOLO11通过C3k2模块、SPPF池化和C2PSA注意力机制,在COCO数据集上以更少参数实现更高精度。研究发现传统FPN+PAN结构存在特征融合权重分配不均和计算冗余问题,而BiFPN通过双向跨尺度连接和加权融合机制实现了突破: 架构创新:BiFPN采用剪枝策略、跳跃连接增强和层级重复叠加,优化信息流动路径 加权融合:提出快速归一化融合算法,动态分配特征权重,相比Sof

2601_95807009的博客 175

微服务保护-流量控制1

个人名片: 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式 2. 案例:1)首先在sentinel控制台添加限流规则 2)利用jmeter测试快速入门测试的就是直接模式。关联模式关联模式:统计与当前资源相关的另一个资源,触发阈值时,对当前资源限流使用场景:比如用户支付时需要修改订单状态,同时用户要查询订单。查询和修改操作会争抢数据库锁,产生竞争。业务需求是优先支付和更新订单的业务,因此当修改订单业务触发

m0_65144570的博客 240

Altium Designer(AD)PCB拼版——两种方法教程

本文详细介绍了PCB拼版的设计要点与操作方法。主要内容包括:拼版目的(解决小尺寸夹持问题、提高利用率、降低成本)和三大连接方式(V-CUT、邮票孔、空心连接条)的特点与参数设置;工艺边设计规范(宽度、定位孔、Mark点等要求);拼版尺寸限制与常见错误检查;以及两种具体拼版操作方法(特殊粘贴和拼版阵列),并附有工艺边、定位孔、Mark点的绘制步骤示意图。同时提供了硬件工程师笔试面试相关资源链接。全文系统阐述了PCB拼版的核心技术和操作流程,为电子设计人员提供了实用指导。

XU157303764的博客 7592

Day44_SpringCloudAlibaba—Sentinel

中文官网1.添加一个controller方法//暂停几秒钟线程log.info("testD 测试RT");2.添加降级规则3.Jmeter压测4.结论1.业务类新加一个方法return new CommonResult(4444,"按客戶自定义,global handlerException----1");return new CommonResult(4444,"按客戶自定义,global handlerException----2");3.编辑限流规则4.测试5.总结。

weixin_45014721的博客 173

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

尚硅谷微服务SpringCloud总结集成思维导图:七个小时速通版(快速复习入门)

《SpringCloud微服务全栈学习笔记》系统梳理了SpringCloudAlibaba技术栈的核心组件及实践路径。内容涵盖:1)分布式基础概念与架构演进;2)Nacos实现服务注册与配置中心;3)OpenFeign远程调用及熔断机制;4)Sentinel流量控制与熔断策略;5)Gateway网关路由配置;6)Seata分布式事务解决方案。

2301_81213626的博客 499

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【微服务架构】SpringCloud Alibaba(五):服务容错 Sentinel(sentinel使用、流控规则)

/ 务必保证 finally 会被执行try {// 资源名可使用任意有业务语义的字符串,注意数目不能太多(超过 1K),超出几千请作为参数传入而不要直接作为资源名// EntryType 代表流量类型(inbound/outbound),其中系统规则只对 IN 类型的埋点生效entry = SphU.entry("自定义资源名");// 被保护的业务逻辑// 资源访问阻止,被限流或被降级// 进行相应的处理操作// 若需要配置降级规则,需要通过这种方式记录业务异常。

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SpringCloud从入门到精通教程/SpringCloud Alibaba从入门到精通教程

对于SpringCloud,很多小伙伴问到了我的研究学习资料来源,除官方文档外,特例完整整理一下自己的平时参考学习其他资料,以及分享实战项目源码和代码资源,供大家参考学习 主要教程:SpringCloud教程 Spring Cloud Greenwich,基于Spring Boot 2.1.7,Github源码仓库案例下载 一、我的教程(2019.11更新) SpringCloud...

Think Different 11万+

springcloud-alibaba-sentinel(4)sentinel流控详解

使用sentinel进行流量监控与控制

胖虎儿的博客 1万+

SpringCloud Alibaba Sentinel 创建流控规则

SpringCloud Alibaba Sentinel 创建流控规则

快乐的小三菊的博客 1921

SpringCloud Alibaba Sentinel服务限流-三种流控模式,和流控效果

相比于豪猪哥的优点之一:能够在后台服务不重启的情况下动态配置流量访问规则。Sentinel8080监控平台和我们的业务逻辑是分开的。 一,服务限流-三种流控模式 限流规则 1,流控模式–直接: **限流表现:当超过阀值,就会被降级。**就是不论你点击多少次,**每秒只能由一个请求是给你通过的。**多的请求就是给你返回默认报错,默认方式为快速失败,就是返回给页面Sentinel自带的请求失败信息。 原因:QPS是每秒钟的请求数量,而我们阈值为1,表明每秒请求数量最多为1,且流控模式为直接,流控效果为快速失

zpf1813763637的博客 1729

SpringCloud Alibaba | Sentinel 流控与服务降级

为什么需要熔断与服务降级 分布式系统中一个微服务需要依赖于很多的其他的服务,那么服务就会不可避免的失败。例如A服务依赖于B、C、D等很多的服务,当B服务不可用的时候,会一直阻塞或者异常,更不会去调用C服务和D服务。同时假设有其他的服务也依赖于B服务,也会碰到同样的问题,这就及有可能导致雪崩效应。 如下案例:一个用户通过通过web容器访问应用,他要先后调用多个模块,但是由于某些原因,导致某个服务不可用,与此同时我们没有快速处理,会导致该用户一直处于阻塞状态。 当其他用户做同样的请求,也会面临着同样的问题,服务

阳光大男孩!!!的博客 2174

SpringCloud Alibaba微服务-- Sentinel的使用(保姆级)

sentinel的使用 sentinel保姆级教程 sentinel的下载及启动

知道的越多 不知道的就越多 2万+

【SpringCloud】使用SpringCloud Alibaba之Sentinel实现微服务的限流、降级、熔断

深入浅出的介绍了微服务中限流、降级、熔断的概念,以及SpringCloud Alibaba 之Sentinel的功能特性及用法,并通过代码展示了如何在项目中使用 Sentinel 实现限流、降级和熔断。

Transient_的博客 2440

SpringCloud Alibaba——Sentinel服务熔断与限流(一、流控规则)

SpringCloud Alibaba——Sentinel服务熔断与限流(一、流控规则)

贝尔摩德苦艾酒 7838

spring cloud alibaba sentinel 流控,服务降级,服务熔断组件

一、 sentinel 主要特性 二、sentinel 的下载及安装 https://github.com/alibaba/Sentinel/releases 下载 sentinel-dashboard-1.7.0.jar 前提是 java8环境OK,8080端口未被占用。 启动 sentinel , java -jar sentinel-dashboard-1.7.0....

小米吃辣椒的博客 2167

微服务 SpringCloud Alibaba Sentinel高可用流控组件

微服务 SpringCloud Alibaba Sentinel实现熔断与限流一、Sentinel概述1.是什么2.主要功能3、下载地址二、安装Sentinel控制台1.sentinel组成2.安装三、初始化演示1.创建Model集成sentinel2.启动sentinel3.启动服务4.查看sentinel控制台四、限流规则1.基本介绍2.流控模式流控模式 - 直接(默认)流控模式 - 关联流控模式 - 链路3.流控效果快速失败Warm Up(冷启动,预热)模式排队等待五、降级规则1.基本介绍3.降级策略

靖节先生的博客 834
上一篇: SpringCloud Alibaba Nacos服务注册和配置中心
下一篇: 2020-11-3面试总结
冷环渊
博客等级 码龄7年 1130粉丝 176原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷环渊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值