微服务框架 SpringCloud微服务架构 微服务保护 31 限流规则 31.4 流控效果【warm up】
创始人
2024-04-20 19:57:58
0

微服务框架

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】

微服务保护

文章目录

      • 微服务框架
      • 微服务保护
      • 31 限流规则
        • 31.4 流控效果【warm up】
          • 31.4.1 流控效果
          • 31.4.2 流控效果 - warm up
          • 31.4.3 案例

31 限流规则

31.4 流控效果【warm up】

31.4.1 流控效果

流控效果是指请求达到流控阈值时应该采取的措施,包括三种:

在这里插入图片描述

  • 快速失败:达到阈值后,新的请求会被立即拒绝并抛出FlowException异常。是默认的处理方式。【响应状态码:429】
  • warm up:预热模式,对超出阈值的请求同样是拒绝并抛出异常。但这种模式阈值会动态变化,从一个较小值逐渐增加到最大阈值。
  • 排队等待:让所有的请求按照先后次序排队执行,两个请求的间隔不能小于指定时长
31.4.2 流控效果 - warm up

【这种模式虽然也会直接把超出阈值的请求直接拒绝并且抛出异常,但是它特别的地方在于 它的阈值不是一成不变的】

warm up也叫预热模式,是应对服务冷启动的一种方案。

服务冷启动:比如人在运动之前,要先热热身,给身体做一下预热,如果不做,就会很容易在运动过程中拉上肌肉。

服务器也一样,如果一个服务器能够达到的QPS = 10,如果人家刚刚启动,QPS 立马就被打满,可能就会被打挂了【所以服务启动时,不能上来就把QPS 拉满】

请求阈值初始值是 threshold(最大阈值) / coldFactor(冷启动因子),持续指定时长后,逐渐提高到threshold值。而coldFactor的默认值是3.

例如,我设置QPS的threshold为10,预热时间为5秒,那么初始阈值就是 10 / 3 ,也就是3,然后在5秒后逐渐增长到10.

在这里插入图片描述

避免冷启动那一刻,并发过高,导致服务故障

31.4.3 案例

【举个栗子】流控效果-warm up

需求:给/order/{orderId}这个资源设置限流,最大QPS为10,利用warm up效果,预热时长为5秒

先访问一下这个接口,让其能在sentinel 中显示

在这里插入图片描述

OK, 查看sentinel 控制台

在这里插入图片描述

OK,给它 添加流控规则

在这里插入图片描述

直接新增

在这里插入图片描述

OK

利用Jmeter 进行测试

在这里插入图片描述

QPS = 10

在这里插入图片描述

请求指向order ,直接启动

在这里插入图片描述

我这儿和老师不一样,我这儿初始只有1,

在这里插入图片描述

后面慢慢加到了 3

在这里插入图片描述

但是特喵图又是对的…

还是笔者的电脑性能问题,那个刷出来不行【这就是预热模式warm up】

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...