当前位置: 首页 > news >正文

七天学会SpringCloud分布式微服务——06——Sentinel

Sentinel 是由 Alibaba 开发的一个轻量级的 流量控制熔断降级 的框架,主要用于保护微服务架构下的应用,避免因为高并发、系统异常等导致服务崩溃

1、理解Sentinel并初步使用

流量控制(Flow Control):限制某些资源的访问次数,以防止流量过大导致服务崩溃。比如限制某个接口的每秒请求次数(QPS),避免过高的并发请求压力。

熔断降级(Circuit Breaker):当某个服务或接口调用失败率过高时,自动进入熔断状态,停止请求,避免继续恶化系统状况。

实时监控与动态调整:Sentinel 提供了一个 Dashboard,用于实时查看流量情况、熔断状态、规则等,并支持动态调整流量控制规则,确保系统始终保持在安全的运行状态
在这里插入图片描述
在这里插入图片描述

1.1 Sentinel 的基本工作流程

Sentinel 通过定义 资源(Resource),并通过为资源设置 流量控制规则,来限制访问量和对服务的保护。

  1. 定义资源:你可以把每个微服务的接口或方法看作一个资源(例如,某个 REST API)。在 Sentinel 中,资源是需要被保护的单位。

  2. 定义流量控制规则:为每个资源设置流量控制规则(比如 QPS、并发数限制等)。当请求超过限制时,Sentinel 会进行降级或者流量控制处理

  3. 请求到达时判断:当外部请求访问一个资源时,Sentinel 会检查该资源的流量控制规则。如果请求数超过阈值,Sentinel 会启动流量控制策略,如拒绝请求或执行降级逻辑

  4. 流量控制/熔断

    • 流量控制:超出设定的流量限制时,Sentinel 会进行流量切断或拒绝。
    • 熔断降级:当某个资源失败率过高时,Sentinel 会进行熔断,拒绝请求直到系统恢复。
  5. 实时监控:Sentinel 提供了一个 Dashboard,实时显示各个资源的流量、状态、规则、异常等信息,帮助开发者做出动态调整。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

1.2 下载并启动sentinel

下载使用

1.3 在两个微服务yml中都配置Sentinel 端口号

在这里插入图片描述
在这里插入图片描述

1.4 默认web接口当作资源,然后使用注解手动添加资源

在这里插入图片描述

1.5 启动项目,并访问createOrder

在这里插入图片描述

1.6 规则的解释

在这里插入图片描述

  1. 流控规则(流控):限制每秒请求数(QPS),例如在高并发情况下,可能会因为流量过大而限制访问。

  2. 熔断规则(熔断):当请求失败率达到某一阈值时,开启熔断,暂停或拒绝一些请求,避免系统过载。

  3. 热点规则(热点):针对请求中的热点数据(例如某个高频访问的资源或API),进行特殊的流控策略,以保证系统稳定。

  4. 授权规则(授权):确保只有经过授权的请求可以访问特定的资源或服务,防止未授权访问。

测试流控规则:
在这里插入图片描述
每秒只能一个这样的请求,否则限流失效
在这里插入图片描述

2、Sentinel异常处理

也就是说,如果出现异常,我们要返回给前端json数据,所以要进行异常处理

类似于这样:
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/578238.html

相关文章:

  • 从零到一通过Web技术开发一个五子棋
  • CSDN博客大搬家(本地下载markdown合适和图片本地化)
  • Stable Diffusion 项目实战落地:从0到1 掌握ControlNet 第四篇 风格化字体大揭秘:从线稿到涂鸦,ControlNet让文字焕发新生
  • 【机器人】复现 HOV-SG 机器人导航 | 分层 开放词汇 | 3D 场景图
  • 文心大模型正式开源,开启AI普惠新时代
  • vue上传各种文件,并预览组件,(预览,下载),下载resources目录下文件
  • 云上攻防—Docker安全容器逃逸特权模式危险挂载
  • 计算机网络(一)层
  • 3.前端和后端参数不一致,后端接不到数据的解决方案
  • 基于C#的OPCServer应用开发,引用WtOPCSvr.dll
  • 中钧科技亮相2025 亚欧商品贸易博览会,赋能数字经济新未来!
  • C#索引和范围:简化集合访问的现代特性详解
  • 2025年 UI 自动化框架使用排行
  • 深度模型结构选择和应用分析
  • 多重性校正:临床试验统计的关键防线
  • 自由学习记录(65)
  • 【算法】动态规划:1137. 第 N 个泰波那契数
  • python训练打卡DAY40
  • 时序数据集---UWave
  • 《燕云十六声》全栈技术架构深度解析
  • docker搭建minio和python使用minio
  • Java web1(黑马)
  • 【知识图谱构建系列7】:结果评价(1)
  • K8s环境下基于Nginx WebDAV与TLS/SSL的文件上传下载部署指南
  • 【Java面试】如何解决MQ死信队列?
  • OpenCV CUDA模块设备层----计算向量的平方根函数sqrt
  • 使用nomachine远程连接ARM设备桌面
  • C# 字符串中‘$‘和‘@‘的使用
  • C++的特殊类
  • STM32——DAP下载程序和程序调试