当前位置: 首页 > 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.dtcms.com/a/262751.html

相关文章:

  • 【软考中级·软件评测师】下午题·面向对象测试之架构考点全析:分层、分布式、微内核与事件驱动
  • 通过python+openCV实现对图片中箭头方向的判断
  • LeetCode 594. 最长和谐子序列
  • 关于 java:8. Java 内存模型与 JVM 基础
  • 汇编基础介绍——ARMv8指令集(四)
  • 【c/c++1】数据类型/指针/结构体,static/extern/makefile/文件
  • 【c/c++3】类和对象,vector容器,类继承和多态,systemd,stdboost
  • Ragflow本地部署和基于知识库的智能问答测试
  • 机器学习在智能电网中的应用:负荷预测与能源管理
  • 【鸿蒙中级】
  • 面试复盘6.0
  • 「Java案例」输出24个希腊字母
  • 深入理解 Dubbo 负载均衡:原理、源码与实践
  • Redis Cluster Gossip 协议
  • 指针篇(6)- sizeof和strlen,数组和指针笔试题
  • 免费SSL证书一键申请与自动续期
  • MySQL-复合查询
  • 暴力风扇方案介绍
  • AlpineLinux安装部署MariaDB
  • 微信小程序接入腾讯云短信验证码流程
  • 用户行为序列建模(篇十)-【加州大学圣地亚哥分校】SASRec
  • 在Linux系统中部署Java项目
  • Unity Catalog 三大升级:Data+AI 时代的统一治理再进化
  • Re:从0开始的 空闲磁盘块管理(考研向)
  • HybridCLR热更新实例项目及改造流程
  • 人工智能之数学基础:如何判断正定矩阵和负定矩阵?
  • JVM基础--JVM的组成
  • Transformer超详细全解!含代码实战
  • Java面试宝典:基础三
  • 新生代潜力股刘小北:演艺路上的璀璨新星