当前位置: 首页 > 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.xdnf.cn/news/1075663.html

相关文章:

  • springboot中多个定时任务(@Scheduled)如何互不影响
  • 如何用废弃电脑变成服务器搭建web网站(公网访问零成本)
  • OpenCV CUDA模块设备层----- 正切(tangent)运算函数tan()
  • CSDN博客大搬家(本地下载markdown合适和图片本地化)
  • 关于 java:8. Java 内存模型与 JVM 基础
  • 基础算法合集-图论
  • 字节跳动 C++ QT PC客户端面试
  • Bessel位势方程求解步骤
  • OpenCV计算机视觉实战(14)——直方图均衡化
  • AutoCAD Electrical 2009无法激活
  • 通过python+openCV实现对图片中箭头方向的判断
  • 【Java面试】10GB,1GB内存,如何排序?
  • SQL参数化查询:防注入与计划缓存的双重优势
  • 「Java案例」计算矩形面积
  • 嵌入式SoC多线程架构迁移多进程架构开发技巧
  • 《用奥卡姆剃刀原理,为前端开发“减负增效”》
  • Ubuntu22.04 you are in emergency mode,键盘失效无法进入root命令行
  • 【Python使用】嘿马云课堂web完整实战项目第2篇:CMS页面管理需求,后端工程搭建【附代码文档】
  • Git 简介安装教程
  • vscode 改注释的颜色,默认是灰色的,想改成红色
  • 大数据(1)-hdfshbase
  • 【零基础学AI】第13讲:随机森林实战 - 用户行为预测
  • Spring Security 鉴权与授权详解(前后端分离项目)
  • 电脑开机加速工具,优化启动项管理
  • 服务器上设置了代理之后,服务器可以访问外网,但是不能访问服务器本地。如何解决
  • 重构老项目不再“踩雷”:飞算JavaAI的本地化智能合并实战
  • HarmonyOS NEXT应用元服务常见列表操作多类型列表项场景
  • 设计模式之外观模式
  • .net8导出影像图片按现场及天拆分
  • 调试W5500(作为服务器)