Sentinel(流控模式:直接关联链路,流控效果:直接预热排队)

Sentinel能够对流量进行控制,主要是监控应用的QPS流量或者并发线程数等指标,如果达到指定的阈值时,就会被流量进行控制,以避免服务被瞬时的高并发流量击垮,保证服务的高可靠性。

1.流控模式:

直接模式测试案例

表示1秒钟内查询1次就是OK,若超过次数1,就直接-快速失败,报默认错误。

测试结果

关联模式测试案例 

当关联的资源到达阈值,就限流自己

测试案例:当关联资源/testB的qps阀值超过1时,就限流/testA的Rest访问地址,当关联资源到阈值后限制配置好的资源名,B惹事,A挂了

使用jmeter对testB进行高并发访问  导致A挂了

测试结果:

链路模式测试案例

当不同链路的请求对同一个目标访问时,实施针对性的不同限流措施

eg:C请求访问限流 D请求访问不限流

添加yml配置:

新建测试业务类:
package com.wen.cloud.service;import com.alibaba.csp.sentinel.annotation.SentinelResource;
import org.springframework.stereotype.Service;
@Service
public class FlowLimitService
{@SentinelResource(value = "common")public void common(){System.out.println("------FlowLimitService come in");}
}
/**流控-链路演示demo* C和D两个请求都访问flowLimitService.common()方法,阈值到达后对C限流,对D不管*/@Resourceprivate FlowLimitService flowLimitService;@GetMapping("/testC")public String testC(){flowLimitService.common();return "------testC";}@GetMapping("/testD")public String testD(){flowLimitService.common();return "------testD";}
sentinel配置

说明:C和D两个请求都访问flowLimitService.common()方法,对C限流,对D不管

2.流控效果:

快速失败

直接失败,抛出异常。

预热(WarmUp)

限流-冷启动

当流量突然增大时,让系统从空闲状态到繁忙状态的切换时间更长一些

计算公式:阈值÷冷却因子coldFactor(默认为3),经过预热时长后才会到达阈值。

测试案例:

案例,单机阈值为10,预热时长设置5秒。

系统初始化的阈值为10 / 3 约等于3,即单机阈值刚开始为3(我们人工设定单机阈值是10,sentinel计算后QPS判定为3开始);

然后过了5秒后阀值才慢慢升高恢复到设置的单机阈值10,也就是说5秒钟内QPS为3,过了保护期5秒后QPS为10        

测试结果

应用场景:

秒杀系统在开启的瞬间,会有很多流量上来,很有可能把系统打死,预热方式就是把为了保护系统,可慢慢的把流量放进来,慢慢的把阈值增长到设置的阈值。

排队等待

测试案例:
@GetMapping("/testE")public String testE(){System.out.println(System.currentTimeMillis()+"      testE,排队等待");return "------testE";}

按照单机阈值,一秒钟通过一个请求,10秒后的请求作为超时处理,放弃

jmeter测试  一秒访问二十次

测试结果:

请求只捕捉了十一个请求,十秒后的请求都放弃

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/756920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring】聊一聊Autowired和Resource

聊一聊Autowired和Resource 对于日常使用来说,在Spring容器中,两个注解的功能基本是等价的,他们都可以将bean注入到对应的field中。 他们之间主要有以下几个关键的区别: 来源不同 Autowired 是 Spring 框架提供的注解&#xff0…

微信小程序项目实战遇到的问题

我们以学生成绩平台来作为例子。这是我们想得到的效果。 以下是完整代码: index.js // index.js Page({//页面的初始数据data: {hello: 欢迎进入微信小程序的编程世界,score: 80,userArray: [{name: 张三,score: [66, 77, 86, 70, 90]},{name: 李四,score: [88, 7…

如何让自己上百度百科?个人百科词条创建

百度百科,作为我国最大的中文百科全书,其影响力和权威性不言而喻。能够登上百度百科,意味着个人的知名度、成就和社会影响力得到了广泛认可。那么,如何才能让自己上百度百科呢?接下来伯乐网络传媒就来给大家讲解一下。…

MyBatis3源码深度解析(十六)SqlSession的创建与执行(三)Mapper方法的调用过程

文章目录 前言5.9 Mapper方法的调用过程5.10 小结 前言 上一节【MyBatis3源码深度解析(十五)SqlSession的创建与执行(二)Mapper接口和XML配置文件的注册与获取】已经知道,调用SqlSession对象的getMapper(Class)方法,传入指定的Mapper接口对应的Class对象…

MongoDB聚合运算符:$getField

文章目录 语法使用举例包含点号(.)的查询查询以($)开头的字段子文档字段查询 $getField聚合运算符返回文档中指定字段的值&#xff0c;字段名可以包含点.或以$开头。如果不指定&#xff0c;$getField将$$CURRENT作为字段返回。 语法 {$getField: {field: <String>,inpu…

自然语言处理:人机交流的桥梁

引言&#xff1a; 自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;作为人机交流的桥梁&#xff0c;在当今数字化社会中扮演着至关重要的角色。它不仅是计算机科学和人工智能领域中的一项重要技术&#xff0c;更是将人类语言与计算机智能相结…

2024年智慧城市、人文发展与区域经济国际会议(ICSCCDRE 2024)

2024年智慧城市、人文发展与区域经济国际会议&#xff08;ICSCCDRE 2024&#xff09; 2024 International Conference on Smart Cities, Cultural Development and Regional Economy 会议简介&#xff1a; 城市经济人文发展是一个综合性的过程&#xff0c;它关注城市在经济、…

C#,图论与图算法,计算无向连通图中长度为n环的算法与源代码

1 无向连通图中长度为n环 给定一个无向连通图和一个数n,计算图中长度为n的环的总数。长度为n的循环仅表示该循环包含n个顶点和n条边。我们必须统计存在的所有这样的环。 为了解决这个问题,可以有效地使用DFS(深度优先搜索)。使用DFS,我们可以找到特定源(或起点)的长度…

字节抖音电商一面

字节抖音电商一面 问的很细&#xff0c;由项目一个小点入手&#xff0c;一直深问。 MVVN与原生js写的优势&#xff08;每个优势一定跟MVVN有关吗&#xff0c;细问&#xff09;http1,2,3的区别——出了个题&#xff0c;问10个请求在tcp的传输下&#xff0c;在不同的http里面各…

十一、MYSQL 基于MHA的高可用集群

目录 一、MHA概述 1、简介 2、MHA 特点 3、MHA 工作原理&#xff08;流程&#xff09; 二、MHA高可用结构部署 1、环境准备 2、安装MHA 监控manager 3、在manager管理机器上配置管理节点&#xff1a; 4、编master_ip_failover脚本写 5、在master上创建mha这个用户来访…

web容器导论

一、基础概念 1.Web容器是什么&#xff1f; 让我们先来简单回顾一下Web技术的发展历史&#xff0c;可以帮助你理解Web容器的由来。 早期的Web应用主要用于浏览新闻等静态页面&#xff0c;HTTP服务器&#xff08;比如Apache、Nginx&#xff09;向浏览器返回静态HTML&#xff…

轻松解锁微博视频:基于Perl的下载解决方案

引言 随着微博成为中国最受欢迎的社交平台之一&#xff0c;其内容已经变得丰富多彩&#xff0c;特别是视频内容吸引了大量用户的关注。然而&#xff0c;尽管用户对微博上的视频内容感兴趣&#xff0c;但却面临着无法直接下载这些视频的难题。本文旨在介绍一个基于Perl的解决方…

React 19的变化

并发模式&#xff08;非实验&#xff09;: React 的并发模式终于从实验阶段毕业了。这一改变游戏规则的功能允许 React 应用程序同时准备多个版本的 UI。有着更平滑的过渡和更灵敏的用户体验&#xff0c;因为 React 现在可以处理高优先级更新&#xff0c;同时保持应用程序的交互…

PHP/后端/Tp/fastadmin/消息通知企业微信机器人

第一步&#xff0c;先在企业微信的群聊里面添加一个机器人。 第二步&#xff0c;复制获取机器人的WebHook地址 第三步&#xff0c;拼接发送内容 public function webhook(){//机器人webhook地址 $url https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyca8c9c-72b1-4faf-…

安卓面试题多线程46-50

46. Volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的?volatile修饰的变量在各个线程的工作内存中不存在一致性的问题(在各个线程工作的内存中,volatile修饰的变量也会存在不一致的情况,但是由于每次使用之前都会先刷新主存中的…

FPGA的应用方向

文章目录 FPGA是什么&#xff1f;FPGA的发展FPGA有哪些公司国内的FPGA发展如何&#xff1f;国内FPGA应用情况怎样&#xff1f;FPGA的发展方向有哪些&#xff1f;FPGA在工业界的应用有哪些&#xff1f;FPGA在科研界的方向有哪些&#xff1f;FPGA在高频信号处理的应用场景FPGA应用…

基于python+vue智慧社区家政服务系统的设计与实现flask-django-nodejs

论文主要是对智慧社区家政服务系统进行了介绍&#xff0c;包括研究的现状&#xff0c;还有涉及的开发背景&#xff0c;然后还对系统的设计目标进行了论述&#xff0c;还有系统的需求&#xff0c;以及整个的设计方案&#xff0c;对系统的设计以及实现&#xff0c;也都论述的比较…

基于docker+rancher部署Vue项目的教程

基于dockerrancher部署Vue的教程 前段时间总有前端开发问我Vue如何通过docker生成镜像&#xff0c;并用rancher上进行部署&#xff1f;今天抽了2个小时研究了一下&#xff0c;给大家记录一下这个过程。该部署教程适用于Vue、Vue2、Vue3等版本。 PS&#xff1a;该教程基于有一定…

Android 项目实战,APP开发,含源码

Android 项目实战&#xff0c;APP开发&#xff0c;含源码 源码项目详情 源码项目详情 切鱼达人&#xff0c;Android休闲游戏开发 打砖块&#xff0c;Android休闲小游戏开发 “牛弹琴”&#xff0c;Android 弹钢琴 app 开发 2048 数字合成大作战&#xff0c;Android小游戏开…

Flink中JobManager与TaskManage的运行架构以及原理详解

Flink中JobManager与TaskManage的运行架构详解 整体架构 Flink的运行时架构中&#xff0c;最重要的就是两大组件&#xff1a;作业管理器&#xff08;JobManger&#xff09;和任务管理器&#xff08;TaskManager&#xff09;。对于一个提交执行的作业&#xff0c;JobManager是真…