微服务框架 SpringCloud微服务架构 微服务保护 31 限流规则 31.1 簇点链路

news2024/12/27 1:15:37

微服务框架

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

微服务保护

文章目录

      • 微服务框架
      • 微服务保护
      • 31 限流规则
        • 31.1 簇点链路
          • 31.1.1 簇点链路
          • 31.1.2 快速入门

31 限流规则

31.1 簇点链路

31.1.1 簇点链路

簇点链路:就是项目内的调用链路,链路中被监控的每个接口就是一个资源。默认情况下sentinel会监控SpringMVC的每一个端点(Endpoint),因此SpringMVC的每一个端点(Endpoint)就是调用链路中的一个资源。

流控、熔断等都是针对簇点链路中的资源来设置的,因此我们可以点击对应资源后面的按钮来设置规则:

在这里插入图片描述

在这里插入图片描述

比如说一个请求进来后,首先交给controller 中的一个方法,controller 又去调service,service 又去调mapper

这样就形成了一个调用链路 , 即簇点链路。链路中被监控的每个接口就是一个资源。

当然虽然当前我们的项目中有controller、service、mapper,

但是它们不一定被sentinel 监控,默认情况下sentinel会监控SpringMVC的每一个端点(Endpoint),因此SpringMVC的每一个端点(Endpoint)就是调用链路中的一个资源。

如果service、mapper 也想被监控,需要利用sentinel 中提供的一些注解实现。

在这里插入图片描述

现在这个controller 就是默认被监控的接口资源,虽然它调了service,

在这里插入图片描述

但是service目前还并没有被监控,即它现在还不是一个资源

在这里插入图片描述

当然现在它就一个分支”儿子“,因为只有controller 被监控着的

后面有些按钮:

  • 流控:流量控制
  • 降级:熔断降级
  • 热点:热点参数限流
  • 授权:授权规则

流控、熔断等都是针对簇点链路中的资源来设置的,因此我们可以点击对应资源后面的按钮来设置规则:

31.1.2 快速入门

在这里插入图片描述

点击资源/order/{orderId}后面的流控按钮,就可以弹出表单。表单中可以添加流控规则,如下图所示:

在这里插入图片描述

其含义是限制 /order/{orderId}这个资源的单机QPS为1,即每秒只允许1次请求,超出的请求会被拦截并报错。

【举个栗子】流控规则入门案例

需求:给 /order/{orderId}这个资源设置流控规则,QPS不能超过 5。然后利用jemeter测试。

  1. 设置流控规则:

在这里插入图片描述

点击“流控按钮”

在这里插入图片描述

填写参数

在这里插入图片描述

新增

在这里插入图片描述

这样就创建了流控规则

  1. jemeter测试:

黑马老师给的资料中有这个工具的安装包,

在这里插入图片描述

拷贝到自己的目录进行解压

在这里插入图片描述

看看里面有啥

在这里插入图片描述

进入bin

在这里插入图片描述

双击

在这里插入图片描述

OK,就来到这个可视化界面

将老师给的测试文档,拖出来

在这里插入图片描述

放到桌面

在这里插入图片描述

OK

通过jmeter 打开

在这里插入图片描述

点击

在这里插入图片描述

open 这个测试文档

在这里插入图片描述

这样就成功导入了

在这里插入图片描述

在这里插入图片描述

  • 线程数20:用户数量,即发送20 个请求
  • 2:两秒内发

这样即一秒钟 10 个 ==> QPS = 10

我们设置上限是5,这样就有了触发限流的条件

启动这个测试

在这里插入图片描述

在这里插入图片描述

效果很明显,每次通过的只有5 个,其他就会失败

看看失败的

在这里插入图片描述

429 :响应失败

响应结果改成json 风格

在这里插入图片描述

在这里插入图片描述

→ 被sentinel 阻塞【限流】

看看sentinel 控制台

在这里插入图片描述

好像不怎么准确,我改成一秒10次看看

在这里插入图片描述

在这里插入图片描述

这次好点了

在这里插入图片描述

感觉可能是笔者电脑卡【性能没有老师的好】【这就是入门案例】

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

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

相关文章

52、网络

目录 一、网络通信 二、网络 三、 ip地址 四、域名 五、端口号 六、网络通信协议 1、协议(tcp/ip) 2、TCP和UDP 七、InetAddress类 八、Socket 1、基本介绍: 2、TCP网络通信编程 3、UDP网络通信编程(了解即可&#xff0c…

完整版JAVA物业管理系统源码带小程序+文字安装教程+视频

这套系统还包含了小程序前端源码。 技术架构 技术框架:springboot ssm shiro layui 运行环境:IntelliJ IDEA 2022 jdk1.8 Mysql5.7.4 maven nginx 宝塔面板 文字安装教程 1.下载源码后打开小皮面板,安装mysql5.7数据库,创…

【JavaEE】计算机是怎样工作的,五分钟带你理解计算机!!!

作者:学Java的冬瓜 博客主页:☀学瓜的主页🌙 专栏:JavaEE 分享:一、让你知道我的存在;二、让你存在下去,对我来说都是危险的,都违反第一条公理。 ——《三体》 主要内容:…

C++11标准模板(STL)- 算法(std::push_heap)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 数据结构的堆物理结构是数…

Linux离线安装RabbitMQ

使用docker离线安装rabbitmq 1.在外网环境下载rabbitmq:management镜像 命令&#xff1a;docker pull rabbitmq:management 启动容器&#xff08;即验证镜像是否有用&#xff09;&#xff1a; 命令&#xff1a;docker run -d --hostname wxrabbit --name rabbitmq -p 15672:15…

【深度学习】学习率预热和学习率衰减 (learning rate warmup decay)

背景 在深度学习中学习率这个超参数&#xff0c;在选取和调整都是有一定策略的&#xff0c;俗称炼丹。有时我们遇到 loss 变成 NaN 的情况大多数是由于学习率选择不当引起的。 神经网络在刚开始训练的时候模型的权重(weights)是随机初始化的&#xff0c;选择一个较大的学习率…

干货 | 浅谈携程大住宿研发效能提升实践

作者简介Mia &#xff0c;携程高级项目经理&#xff0c;负责酒店Devops实践&#xff0c;关注Devops/敏捷等领域。YY&#xff0c;携程敏捷教练&#xff0c;负责团队敏捷转型&#xff0c;研发效能提升实践&#xff0c;关注Agile、Devops、研发效能等领域。一、前言管理大师彼得德…

[ChatGPT为你支招]如何提高博客的质量,找到写作方向,保持动力,增加粉丝数?

0. 引言 作为一个博主&#xff0c;您可能会面临很多挑战&#xff0c;比如如何提高博客的质量&#xff0c;如何找到自己的写作方向&#xff0c;如何保持持续写作的动力&#xff0c;以及如何增加博客的粉丝数量。在这篇文章中&#xff0c;我们将为您提供一些有用的建议&#xff…

Maven打包报错:找不到符号,类BASE64Encoder,程序包sun.misc

背景 一个基于若依单体架构的多模块 Maven 项目的国产化迁移适配&#xff0c;由于是客户的代码&#xff0c;我们不用关心具体的功能实现&#xff0c;直接来做迁移即可。实施时&#xff0c;按照我们总结的整改建议调整源码&#xff0c;具体迁移适配过程可参考本专栏的其他文章。…

ADI Blackfin DSP处理器-BF533的开发详解19:LAN的网口设计

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 BF533说实话用来做LAN的应用有些许勉强&#xff0c;因为他自己不带网口&#xff0c;要做的话&#xff0c;需要在总线上挂&#xff0c;那…

彻底搞懂ESLint与Prettier在vscode中的代码自动格式化

前言 前端代码格式化社区提供了两种比较常用的工具ESLint和Prettier&#xff0c;他们分别提供了对应的vscode的插件&#xff0c;二者在代码格式化方面有重叠的部分&#xff0c;规则不一致时会导致冲突。vscode作为前端开发编辑器已经越来越普遍了&#xff0c;这需要开发者在vs…

ChatGPT与搜索引擎合体,谷歌都不香了,LeCun转发|在线可玩

Alex Pine 发自 凹非寺量子位 | 公众号 QbitAI见惯了列表式搜索引擎&#xff0c;你有没有想过给它换种画风&#xff1f;有人脑洞大开&#xff0c;把艳惊四座的ChatGPT和必应搜索结合起来&#xff0c;搞出了一个智能搜索引擎&#xff1a;既有ChatGPT式的问答&#xff0c;又像普通…

VS——路径说明

$(TargetDir)输出目标的路径 $(TargetPath) 输出文件.exe的路径 $(TargetName) 项目名字 $(TargetFileName) 输出的.exe的名字 $(TargetExt) 文件的扩展名 $(ProjectDir)工程目录 目录根据下面的文件来的 $(IntDir)获取中间文件 $(OutDir)文件输出路径 $(Solu…

神马操作Kafka 竟宣布弃用 Java 8

Kafka 3.0.0 发布了&#xff1a; ​ 编辑切换为居中 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 主要更新如下&#xff1a; The deprecation of support for Java 8 and Scala 2.12 Kafka Raft support for snapshots of the metadata topic and ot…

ADI Blackfin DSP处理器-BF533的开发详解15:RS232串口的实现(含源代码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 实现原理 ADSP-EDU-BF533 开发板上设计了一个 RS232 接口&#xff0c;该接口通过 ADSP-BF53x 上的 UART 接口&#xff0c;扩展 RS232协议的芯片实…

Java学习之Object类——equals方法

Object 类是类层次结构的根类。每个类都使用 Object 作为超类。所有对象&#xff08;包括数组&#xff09;都实现这个类的方法&#xff0c;学习Object 类的六个方法——equals(Object obj)、finalize、toString、hashCode、getClass、clone 目录 和equals的对比 一、的作用 …

ChatGPT惊人语录大赏

文 | 智商掉了一地这几天ChatGPT实在太火了&#xff0c;笔者的朋友圈已经被ChatGPT的各种金句刷屏了&#xff0c;实在忍不住整理下来&#xff0c;分享给大家。ChatGPT惊人语录1&#xff1a;建议娶奶奶为妻注&#xff1a;贾母是贾宝玉的奶奶ChatGPT惊人语录2&#xff1a;角色扮演…

【allegro 17.4软件操作保姆级教程十】文件输出

目录 1.1添加光绘层叠 1.1.1添加线路层 1.1.2添加表底阻焊层 1.1.3添加表底钢网层 1.1.4添加表底丝印层 1.1.5添加钻孔层 ​1.2输出文件 1.2.1输出光绘文件 1.2.2输出钻孔文件 1.2.3输出坐标文件 1.2.4输出文件打包 1.1添加光绘层叠 在输出文件之前需要先添加光绘层…

PyTorch中学习率调度器可视化介绍

神经网络有许多影响模型性能的超参数。一个最基本的超参数是学习率(LR)&#xff0c;它决定了在训练步骤之间模型权重的变化程度。在最简单的情况下&#xff0c;LR值是0到1之间的固定值。 选择正确的LR值是具有挑战性。一方面较大的学习率有助于算法快速收敛&#xff0c;但它也…

【车载开发系列】UDS诊断---输入输出控制($0x2F)

【车载开发系列】UDS诊断—输入输出控制&#xff08;$0x2F&#xff09; UDS诊断---输入输出控制&#xff08;$0x2F&#xff09;【车载开发系列】UDS诊断---输入输出控制&#xff08;$0x2F&#xff09;一.概念定义1&#xff09;与0x31例程控制服务的关系2&#xff09;与0x22读取…