三、认识Sentinel

三、Sentinel限流熔断 Sentinel是阿里开源的分布式系统流量控制解决方案,通过流量控制、熔断降级、系统负载保护等多维度保障服务稳定性。文章介绍了Sentinel的背景、核心功能、安装步骤以及快速入门方法,包括控制台配置和限流规则设置。详细解析了三种限流模式(直接、关联、链路)的应用场景和实现方式,并演示了如何在Spring Cloud项目中集成Sentinel进行服务保护。Sentinel源自阿里巴巴双十一实战经验,能有效应对秒杀、抢购等高并发场景,确保系统在高负载下的可靠运行。 阅读详情

1. 什么是Sentinel?

  • 官方概念
    Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
  • 个人理解
    Sentinel 是阿里巴巴开源的分布式系统流量治理组件,核心作用是解决分布式架构下的流量失控、服务稳定性保障、熔断降级等问题,最终目标是避免因局部故障扩散导致整个分布式系统崩溃,即实现 “弹性容错”。
    它的核心价值可概括为:“治流量、保稳定、防雪崩”。

2. Sentinel的功能

本文从以5点对Sentinel进行功能介绍:

序号功能备注说明
1流量控制防止流量过载
2熔断降级防止故障扩散
3系统自适应保护全局资源调度
4热点参数限流精准打击高频风险
5黑白名单控制访问权限管控

2.1 流量控制(Flow Control):防止流量过载

流量控制是 Sentinel 最基础的能力,其核心思想是 “根据预设规则限制流量的输入和输出速率” ,避免因突发流量(如秒杀、促销)或异常流量导致服务资源耗尽(如 CPU、内存、线程池占满)。

作用逻辑:

  • 监控服务的实时流量(如 QPS、并发线程数),与预设的 “流量阈值” 对比;
  • 当流量超过阈值时,触发限流策略,拒绝或延迟部分请求,保障服务核心功能可用。

常见限流规则:

规则类型适用场景示例
QPS限流控制单位时间内的请求次数(最常用)限制某接口每秒最多处理1000个请求
并发线程数限流控制服务同时处理的线程数(避免线程池耗尽)限制某服务最多同时使用50个线程
关联限流防止“非核心接口”抢占“核心接口”资源当“商品详情接口”流量过高时,限流“评论接口”
链路限流限制某一调用链路的流量(而非全局)只限制“APP->订单接口”的流量,不限制“后台管理->订单接口”

2.2 熔断降级(Circuit Breaking & Degradation):防止故障扩散

在分布式系统中,服务间依赖关系复杂(如 A 依赖 B,B 依赖 C),若下游服务 C 故障(如响应超时、报错率高),上游服务 B 会因 “等待 C 响应” 而占用大量资源(如线程阻塞),进而导致 B 故障,最终扩散至 A,引发 “服务雪崩”。
Sentinel 的熔断降级功能就是通过 “暂时切断故障依赖”,避免故障扩散,给下游服务恢复时间。

作用逻辑:

  • 监控下游服务的调用状态(如错误率、响应时间、超时比例);
  • 当指标超过预设阈值时,触发 “熔断”:短期内不再调用该下游服务,直接返回 “降级响应”(如默认值、缓存数据);
  • 熔断一段时间后,进入 “半开” 状态,尝试少量调用下游服务:若恢复正常则关闭熔断,若仍故障则继续熔断。

常见熔断策略:

  • 错误率熔断: 当调用错误率(如 HTTP 5xx、业务异常)超过阈值(如 50%)时熔断;
  • 响应时间熔断: 当调用响应时间的 95% 分位值超过阈值(如 500ms)时熔断;
  • 超时比例熔断: 当调用超时比例(如超过 1s 的请求占比)超过阈值时熔断。

2.3 系统自适应保护(System Adaptive Protection):全局资源调度

流量控制和熔断降级是 “局部保护”(针对单个接口或依赖),而系统自适应保护是 “全局保护”—— 从整个系统的资源(CPU、内存、负载、入口 QPS)出发,动态调整流量,避免系统整体过载。

核心作用:

  • 防止 “局部流量正常,但全局资源耗尽” 的问题(例如:多个接口单独限流都未触发,但叠加后导致 CPU 100%);
  • 基于系统实时指标(如 CPU 使用率、系统负载 Load、入口总 QPS)自动调整限流阈值,无需人工配置。

常见保护策略:

  • CPU 保护: 当 CPU 使用率超过阈值(如 80%),自动限制入口流量;
  • 负载保护: 当系统负载(Load)超过阈值(如 Linux 系统 Load > 8),限制非核心流量;
  • 内存保护: 当 JVM 内存使用率超过阈值(如 90%),触发限流或降级。

2.4 热点参数限流(Hot Parameter Flow Control):精准打击高频风险

热点” 指 “访问频率极高的参数值” ,例如:

  • 秒杀场景中,某一热门商品 ID(如 “商品 ID=10086”)的请求占比 90%,若只对 “商品接口” 做全局 QPS 限流,会导致其他商品的正常请求被误杀;
  • 用户登录接口中,某一恶意用户的手机号(如 “138xxxx8888”)短时间内请求 1000 次,需单独限制该手机号。
    Sentinel 的热点参数限流可实现 “基于参数值的精准限流” ,只限制高频风险参数,不影响其他正常参数的请求。

2.5 黑白名单控制(Black/White List Control):访问权限管控

基于请求的 “标识信息”(如 IP 地址、用户 ID、手机号)设置黑白名单,实现访问权限的精准控制:

  • 黑名单: 拒绝特定标识的请求(如封禁恶意 IP、违规用户 ID);
  • 白名单: 只允许特定标识的请求(如仅允许公司内网 IP 访问后台管理接口)。

典型场景:

  • 防止恶意爬虫: 封禁爬虫 IP;
  • 后台接口保护: 仅允许运维 / 开发人员的 IP 访问;
  • 灰度发布: 仅允许白名单用户访问新功能接口。

Sentinel 与其他组件的区别(为何选择 Sentinel?)
很多人会将 Sentinel 与 Hystrix(Netflix 开源,已停止维护)、Resilience4j(轻量级熔断组件)对比,其核心优势在于:

特性SentinelHystrixResilience4j
核心能力流量控制 + 熔断 + 系统保护 + 热点限流 + 黑白名单熔断降级(核心)熔断 + 限流 + 重试(轻量)
易用性开箱即用,支持 Spring Cloud/Spring Boot 自动装配需手动配置线程池,复杂度高需手动集成,配置较繁琐
监控能力自带 Dashboard,实时查看流量、熔断状态需集成 Turbine + Dashboard需集成 Micrometer 等
性能高(底层采用 Netty 异步模型,QPS 支持百万级)低(线程池隔离,开销大)中(基于 RxJava,轻量)
活跃度活跃(阿里维护,持续更新)停止维护(2018 年后)活跃

3. 总结

Sentinel 不是单一功能的组件,而是一套 “分布式系统稳定性保障的完整解决方案” ,其核心作用可归纳为:

  1. 防过载:通过流量控制、热点限流限制异常流量;
  2. 防雪崩:通过熔断降级切断故障依赖;
  3. 保全局:通过系统自适应保护确保整体资源安全;
  4. 精管控:通过黑白名单、热点参数实现精准权限和风险控制。

目前,Sentinel 已广泛应用于阿里内部(如双十一、春晚红包)及外部企业的分布式架构中,是微服务、云原生场景下保障服务稳定性的核心组件之一。

Redis Sentinel 模式搭建指南:一主两从三哨兵 本文将详细介绍如何搭建 Redis 哨兵模式集群(一主两从三哨兵),包括架构说明、安装配置、验证测试、客户端连接、运维管理和常见问题排查,确保 Redis 高可用落地。 阅读详情

相关推荐

三. SpringCloudAlibaba - Sentinel限流

Sentinel诞生于阿里巴巴,其主要目标是流量控制和服务熔断,2018年,Sentinel演变为一个开源项目现如今成为了Spring Cloud Alibaba的一个子项目。Sentinel是通过限制并发线程的数量(即信号隔离)来减少不稳定资源的影响,而不是使用线程池,省去了线程切换的性能开销。当资源的响应时间变长时,线程将开始被占用。当线程数累积到一定数量时,新的传入请求将被拒绝。反之亦然,当资源恢复并变得稳定时,占用的线程也将被释放,新请求将被接受。

ayuer529的博客 221

Sentinel

高并发系统关注的问题 熔断、降级、限流 文档 sentinel配置 基本配置 持久化 例子 定义资源 基于代码 基于注解 示例: RestTemplate Feign Gateway

liangjiayy的博客 219

Python量化投资——mplfinance实现全功能动态交互式K线图(蜡烛图)【源码+详解】

特别鸣谢:@szFoxtech 同学热心提供了通过键盘操作平移和缩放K线图的代码!!在我的另一篇文章《七行代码利用tushare和mplfinance生成K线图》中,我介绍了两个非常好用的python库,结合起来可以非常方便容易地生成股票的K线图,对于使用python进行量化投资研究的朋友可谓是必备良方。如下图所示,仅仅几行代码,就能生成下面这张K线图:不过,仅仅使用七行代码生成的K线图,虽然看上去也像那么回事了,但是对于真正需要使用K线图作为研究工具或者可视化工具的朋友们来说,是远远不够的。在我看来,至少

m0_67390379的博客 9836

技术选型:Sentinel vs Hystrix

这是围绕 Sentinel 的使用场景、技术对比和实现、开发者实践等维度推出的系列文章的第三篇。 » 第一篇回顾: Dubbo 的流量防卫兵 | Sentinel如何通过限流实现服务的高可用性 - 传送门 » 第二篇回顾: RocketMQ 的保险丝| Sentinel 如何通过匀速请求和冷启动来保障服务的稳定性 - 传送门 Sentin...

weixin_34205076的博客 647

PSCAD学习笔记(1)Project Settings(重点snapshot设置)

若不勾选,则横坐标为实际时间2-7s,故障显示在第3s发生。图片中时间坐标轴显示为0-5s,故障时刻显示为第1s,即0-1s展示系统稳态,1-5s展示系统发生故障后的暂态响应,如何通过快照文件实现?勾选该项后,使用快照文件启动仿真会将仿真起始时间强制设置为0s,反之不勾选则依据快照文件保存的时间轴继续(即坐标为实际时间)。如果已有的快照文件保存的是0s至5s的仿真内容,则仿真运行时间从5s开始,到10s结束。如果已有的快照文件保存的是0s至2s的仿真内容,则仿真运行时间从2s开始,到7s结束;

gwenh的博客 7345

从HAL库SPI状态机机制剖析:为什么你的DMA发送会卡在BUSY状态?

本文深入剖析了STM32 HAL库中SPI状态机机制导致DMA发送卡在BUSY状态的常见问题。通过分析状态机设计原理,揭示了混合使用阻塞方式和DMA方式时状态切换冲突的根源,并提供了三种实战解决方案:正确配置SPI中断、使用HAL_SPI_Abort()函数以及手动管理状态机,帮助开发者实现稳定流畅的SPI DMA通信。

bush的博客 268

Alibaba Sentinel 三 :Sentinel降级

除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断(默认行为是抛出 DegradeException)。 sentinel降级策略主要有3点: RT .

许洪昌的博客 875

单细胞marker基因表达密度图-(还有一个包装函数)

我们借助Nebulosa,将上面的过程包装为一个函数,还是那句话,受累麻烦的事我们来解决,您轻松即可,先看看函数参数:需要注意的是,如果你只想框选某一类celltype,理想模式是这群celltype是单独聚类的,没有散落在其他类群,否则将会全部框选,效果不好,建议使用AI/PS添加。需要注意,这里我算是投机取巧了,用了一个和这个作图毫无关系的包ggnetwork,主要的目的是用他的theme_blank()主题,一次性将所有清空,当然也可以自己慢慢写,不过有现成的,为啥不用呢?这质感不就上去了嘛。

qq_42090739的博客 1372

Sentinel(三):Sentinel熔断降级

进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误),当请求触发熔断后,在熔断时间段内所有的请求都没拒绝,过了熔断时长,请求可以再。在统计时长内,异常请求数超过配置的“异常数”,后续在熔断时长内的请求会被直接拒绝。当统计时长内,异常请求占比超过阈值后,后续在熔断时长内的请求会被直接拒绝,数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内新的。若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT ,

liang8999的博客 1461

Spring-AI 第 17 章 - 飞书机器人接入详解

✅ Stream 长连接(官方 SDK)✅ AI 对话(支持工具调用)✅ 消息接收与回复✅ 天气查询✅ 数据库查询✅ 数学计算✅ 事件去重Stream 长连接模式:使用官方 SDK 建立 WebSocket 长连接,服务器主动连接飞书,无需公网 IP消息处理流程:接收消息 → 解析内容 → AI 处理 → 回复用户AI 工具调用:接入 FunctionTools,支持天气、计算、日期、数据库查询等多种工具。

AppBlog.CN全栈架构 211

Fiori Elements Analytical List Page 标题区配置全攻略:从变体、过滤模式到 UI.KPI 的工程化落地

ALP标题区是Fiori Elements Analytical List Page的核心交互区域,承担变体管理、过滤模式切换、KPI展示等关键功能。本文系统解析了标题区的组成结构、可用能力及工程实现要点,包括:1)标题区包含过滤类型切换、全局KPI、变体管理等交互元素;2)详细说明视觉过滤与紧凑过滤的同步规则及实现方式;3)介绍OData V2下通过UI.KPI注解配置标题区KPI的方法;4)提供manifest.json配置示例和CDS注解写法。文章还对比了V2与V4版本的差异,为ALP开发提供实用指导

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 246

三、Sentinel实现熔断与限流

一、概述 1、Sentinel介绍 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 2、Sentinel特征 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用

余笙的博客 4874

【YOLOv8-pose姿态识别部署至RK3588:模型训练到RKNN落地,让人体姿态分析精度与边缘推理速度双突破】

本教程从YOLOv8-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实时性+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随时交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

FJN110的博客 330

Sentinel源码三:滑动窗口

本篇主要还是介绍了滑动窗口进行一个qps等数据的保存和维护的,后续我们将进入flowSlot的源码分析,看看限流是如何运用刚刚统计到的信息进行一个限流判定的。

一只小星星 2408

【项目实战】分布式日志系统 之 Exactly-once 语义:确保数据处理的精确性

在分布式系统的数据传输与处理中,是一种核心可靠性保障,其目标是确保数据“仅被处理一次”——既不重复(避免多次处理),也不遗漏(避免未处理)。与,二者共同保障数据处理的精确性。Exactly-once 语义是分布式系统中数据可靠性的高级目标,其核心通过“幂等设计”(解决重复问题)和“分布式事务”(解决原子性问题)实现。在实际应用中,常结合 At-Least-Once 语义与幂等性,或通过事务 API 与唯一 ID 去重的组合,平衡可靠性与系统性能。

奶爸的编程之路,也就一周冷个三天 168

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Redis中的Sentinel(三)

Sentinel默认会以每十秒一次的频率,通过命令连接向被监视的主服务器发送INFO命令,并通过分析INFO命令的回复来获取主服务器的当前信息。根据run_id域和role域记录的信息,Sentinel将对主服务器的实例结构进行更新。例如,主服务器重启之后,它的运行ID就会和实例结构之前保存的运行ID不同,Sentinel检测到这一情况之后,就会对实例结构的运行ID进行更新。

Cover_sky的博客 1398

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

redis三之sentinel部署

转载:https://blog.youkuaiyun.com/liuchuanhong1/article/details/53206028 一、准备条件 1、操作系统:win7 2、redis版本:redis-2.8.19 二、下载redis并解压 1、下载 由于redis官方并不支持windows操作系统,所以官网上是下不到的,需要到gitlab上下载,下载地址如下: https://gi...

w450093854的专栏 221

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SpringCloud Alibaba Sentinel(三)

Sentinel熔断和持久化服务熔断不设置任何参数设置fallback设置blockHandlerblockHandler和fallback一起配置异常忽略Feign系列引入依赖修改YML启动类激活Feign引入Feign接口加入fallback兜底方法实现测试熔断框架对比Sentinel规则持久化是什么怎么玩解决方法引入依赖修改yml添加nacos配置 服务熔断 sentinel整合Ribbon + openFeign + fallback 搭建 9003 和 9004 服务提供者 不设置任何参数 然后在

fanjia2shao的博客 1125

Sentinel三大流控策略全解析

策略判断依据适用场景是否依赖DIRECT当前资源自身流量(可按 origin 细分)通用限流、多租户隔离❌ 否RELATE另一个资源(refResource)的全局流量保护依赖、联动限流✅ 是CHAIN当前调用链的入口资源是否匹配 refResource链路级精细化控制✅ 是DIRECT→ “我自己不能太忙”RELATE→ “他太忙了,我得帮他挡一挡”CHAIN→ “只有从那条路来的人,我才管”理解这三种策略,就能在复杂微服务架构中实现精准、灵活、安全的流量治理。

m0_37607945的博客 574

spring cloud nacos 三 Sentinel的使用

spring cloud nacos 三 Sentinel的使用 一.Spring Cloud中使用Sentinel 1.在服务提供者pom.xml 加入 spring-cloud-starter-alibaba-sentine <dependency> <groupId>org.springframework.cloud</groupId...

空 1221

项目架构之三主三从三Sentinel笔记(13)

一:Sentinel 【哨兵】 1. Sentinel是干嘛的呢??      用于监视master是否正常在线,如果说master挂掉了,sentinel会让slave顶上去。 2. 开多少Sentinel适合?      开3个Sentinel,或者说开奇数个,Sentinel的原理就是一直监视着master是否在线,      如果挂掉,sentinel的集群会选举中一个零头的se

1243

(三)springCloud2021整合sentinel

1. 前言 1.1 什么是sentinel? 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 1.2为什么使用sentinel? 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时...

qq_37182370的博客 1299

Sentinel源码(三)slot解析

回顾 在Sentinel源码(二)入口方法分析中,我们遗留了插槽链相关的内容,本文将详细解析这块内容 关于插槽链:在sentinel-core包下面默认提供了8个插槽连(com.alibaba.csp.sentinel.slotchain.ProcessorSlot) # Sentinel default ProcessorSlots com.alibaba.csp.sentinel.slots.nodeselector.NodeSelectorSlot com.alibaba.csp.sentinel.s

Ethan_199402的博客 1254

系列十一、(三)Sentinel控制台

簇点链路是用来显示微服务中哪些接口可以用来监控。

仰望星空,脚踏实地!安全感是自己给的,努力才是一辈子的安全感。 1963

Gateway 网关 (三) Sentinel 限流

废话 其实大部分人都是苦于不知道用啥工具去做限流,如果自己写一个限流逻辑,似乎又比较low,所以,当看到我这个标题的时候,其实本章大概率是不需要再去看了。 建议直接看官方文档吧,写得挺清楚的:https://github.com/alibaba/Sentinel 我这里就做一个最简单的限流示例,规则是每秒1次请求,超出1次就返回请求过于频繁的提示。 概述 Sentinel支持两种模式,1种是简单的导个包,跑限流策略,另外一种是可以安装一个他提供的管理后台,提供了不少比较丰富的(花里胡哨)的功能,我

qq_33601179的博客 1567
上一篇: 二、新建spring cloud alibaba项目并注册服务到nacos
下一篇: 四、安装使用Sentinel
守望天命
博客等级 码龄16年 7粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值