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

Java研学-SpringCloud(十)

五 流控规则

1 介绍

  Sentinel 流控规则通过限制超出系统处理能力的多余请求(如设置 QPS 阈值或并发线程数),防止资源耗尽(如 CPU 过载、线程池满、数据库连接池枯竭),从而保障系统在高并发或异常流量下的稳定性和可用性。

  在 Sentinel 中,流控模式(直接、关联、链路)的配置仅适用于快速失败(Reject)策略,而其他策略(如匀速排队、Warm Up)不支持这些流控模式的设置

2 规则设置

  QPS每秒请求数 底层使用计数器统计数量 轻量速度快

  并发线程数效果与QPS相同 需配合线程池 统计线程池中的线程数量 性能较低(线程切换,调用等)

  单机均摊为1,表示在集群环境下,每个服务实例(节点)独立分配的请求处理配额为1个/秒。例如,当集群部署5个服务实例时,理论最大处理能力为5个请求/秒(1×5)。

  总体阈值为1,表示整个集群所有实例的总请求处理上限为1个/秒,即无论集群规模如何扩展,系统每秒仅允许处理1个请求,超出部分将触发限流策略。
在这里插入图片描述
在这里插入图片描述

3 流控规则 – 高级选项

  ① 直接策略:高级选项中,直接策略(默认方案)表示直接对资源进行限制,QPS超出阈值,就会丢弃
在这里插入图片描述
  ② 链路策略:指根据链路,对不同调用方,设置不同的调用限制,如A,B都要调用C,但C设置链路规则,A可以无限制调用C资源,但B每秒钟只可以调用2次 – OrderController

@RestController
public class OrderController {@AutowiredOrderService orderService;// 所需属性@AutowiredOrderProperties orderProperties;@GetMapping("/config")public String config(){return "order.timeout:"+orderProperties.getTimeOut()+ ";order.autoconfirm:"+orderProperties.getAutoConfirm()+ ";order.dbUrl:"+orderProperties.getDbUrl();}@GetMapping("/create")public Order createOrder(@RequestParam("productId") Long productId,@RequestParam("userId") Long userId) {Order order = orderService.createOrder(productId, userId);return order;}// 与 createOrder 相同也会调用远程资源@GetMapping("/createB")public Order createOrderB(@RequestParam("productId") Long productId,@RequestParam("userId") Long userId) {Order order = orderService.createOrder(productId, userId);// 设置id作为区分
http://www.dtcms.com/a/356191.html

相关文章:

  • Android14 init.qcom.usb.rc详解
  • 设计模式之状态机模式
  • hive udf函数实现在sql查询网站价格
  • Vue3 中的 v-model 语法糖
  • (Nginx)基于Nginx+PHP 驱动 Web 应用(上):配置文件与虚拟主机篇
  • 基于SQL大型数据库的智能问答系统优化
  • 安卓开发---SimpleAdapter
  • 不同卷积不同的滤波效果
  • 如何将OFD文件转换为PDF?总结在线OFD转PDF方法
  • QT5.14.2、CMake 扩展openCV
  • GPT-5原理
  • 第二章 Vue + Three.js 实现鼠标拖拽旋转 3D 立方体交互实践
  • Python- Visual Studio Code配置Anaconda
  • WebIDEPLOY 赋能数字校园建设:智慧管理系统的效能升级与实践路径 —— 以校园资源协同优化构建高效教育生态的探索
  • 洞悉核心,驭数而行:深入理解 Oracle SQL 优化器(RBO 与 CBO)的性能调优哲学
  • C# 一个投资跟踪程序的设计与实现:面向对象与设计模式的深度解析
  • ros、slam、激光雷达、自动驾驶相关学习内容和计划
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day15
  • PyTorch 机器学习基础(选择合适优化器)
  • 【Big Data】Alluxio 首个基于云的数据分析和开源AI数据编排技术
  • 补题报告08
  • 从零开始的云计算生活——第五十四天,悬梁刺股,kubernetes模块之组件与网络
  • 计算机是如何运行的
  • Kotlin 和 Java 的区别
  • 【Linux系统】线程控制
  • 《C++进阶之STL》【AVL树】
  • PlotJuggler如何安装和使用
  • JavaSE丨集合框架入门(二):从 0 掌握 Set 集合
  • DeepSeek大模型风靡云平台,百度智能云、阿里云、腾讯云等多个平台宣布上线DeepSeek模型
  • HGDB全文检索/中文分词的使用