springcloud22:sentinal的使用

news2025/7/18 17:38:15
  • sentinal对比(分布式系统的流量防卫)
    监控保护微服务
    Hystrix 需要自己去手工搭建监控平台,没有一套web界面可以进行细粒度化的配置,流控,速率控制,服务熔断,服务降级…
    整合机制:sentinal
    单独一个组件可以独立出来,支持界面化的细粒度统一配置。配置+注解

  • sentinal的使用

  • 页面使用增加流控模式:

    • QPS:每秒请求数(访问多次则会报错)
      模式:直接快速失败:报错Blocked by Sentinel (flow limiting)
      此时一秒请求一次,不会出问题,一秒请求多次,会被限流
      在这里插入图片描述
      此时直接调用默认错误信息,我们如何改进?
    • 线程数(允许访问,但是只有一个线程可以处理)
      模式:直接快速失败
      此时线程数为1,即两个服务请求到,如果第一个请求还未被线程处理完成第二个请求就来,此时会报错在这里插入图片描述
    • 前两个流控模式都为直接模式
      流控模式更改为关联:即A与B关联,即B达到阈值,则A会被限制(支付接口达到阈值,限流下订单的接口)
      此时:快速访问B,而A报错Blocked by Sentinel (flow limiting)
      在这里插入图片描述
    • 前三个流控效果都为快速失败 流控模式为直接模式
      流控效果改为预热一开始 单击阈值为10/3(默认)=3,在经过预热时长5秒钟之后,再更改为阈值10(前五秒钟为3,后五秒钟为10)
      在这里插入图片描述
    • 流控效果:排队等待
      只允许一个一个的进来,每秒只处理一个,可以等待(请求以均匀的速度通过)
  • 页面增加降级规则:(sentinel熔断无半开状态)

    • RT:平均响应时间(超出阈值且时间窗口内通过的请求大于等于5),两个条件满足后触发降级
    • 异常比例:QPS大于等于5且异常比例超过阈值,触发降级
    • 异常数:异常数(分钟统计)超过阈值后,触发降级
      在这里插入图片描述
    • 举例:RT使用
      一秒钟五个请求平均响应时间>阈值且处理任务的时间大于阈值,触发降级,时间窗口期内不能用,时间窗口期过了之后,恢复。(以下例子为200ms以内处理完成,搞定就ok,搞不定未来一秒钟内降级,下一秒内不可用,过完一秒即可用)
      在这里插入图片描述
    • 举例使用异常比例
      一秒钟五个请求平均响应时间>阈值且处理任务的时间大于一秒内的异常比例超过阈值,则触发降级,时间窗口结束,关闭降级
      程序出错。单独访问直接报错500,如果一秒钟请求五次以上,达到降级,则直接报错Blocked by Sentinel (flow limiting)
    • 举例使用异常数:
      近一分钟的异常数超过阈值后进行熔断(时间窗口大于60s)
  • 热点key限流

    • 是什么?会统计传入参数中的热点参数,根据传递的参数来进行 限流@SentinelResource声明兜底方法
      在这里插入图片描述
      在这里插入图片描述
      配置完成后,如果第0个角标的参数访问时违背规则,然后降级,利用我们配置的兜底方法,即只要带参数第0个角标违背就降级,但是如果只带第二个参数随便访问
    • 参数例外项:希望设置的角标参数为特定值时有定制情况
      在这里插入图片描述
      如果第一个参数等于5时,限流阈值变为200
      注意:sentinelResource是控制台配置的错误,而runtimeexception没有兜底正常异常
  • 系统规则
    系统自适应限流:对应用的整体维度进行限流
    在这里插入图片描述

    • load:系统超过装载率
    • CPU使用率
    • 平均处理时间
    • 并发线程数
    • 全局QPS
  • @SentinelResource

    • 按资源名称限流(返回兜底方法)
      此时关闭服务,流控规则消失(临时流控规则)
      按URL限流(返回自带默认,不会走自己的handler)
      总结:因为注解中的value对应资源名,故资源名可以走默认方法而URL不会走自定义方法
      可以用资源名来配置流控,也可以用URL配置流控(不会走自定义兜底方法),配置了流控规则后,如果违背了有定义的blockHandler则用,如果没有,则用默认的处理。
    • 上述出现问题:耦合+默认自定义+代码膨胀
      客户自定义限流处理:
      自定义类CustomerBlockHandler
  • sentinal服务熔断
    注册到Nacos
    sentinel整合了ribbon+openfeign+fallback
    riibbon:负载均衡

  • 例子:
    84订单利用ribbon负载均衡,然后调用服务9003,9004
    84订单本身服务熔断(ribbon+Restemplate)

  • 以上目的是:进一步加深sentinelresource的属性,fallback管理运行异常,blokHandler管配置违规

  • falback 能够管理运行时异常(java异常)相当于服务降级

  • blockHandler只负责sentinel的配置异常,不负责运行时异常

  • 整合sentinel+Feign = ribbon + RestTemplate

  • sentinel框架的持久化

    • 将配置规则配到nacos中
      nacos和sentinel整合(sentinel的配置保存到nacos中)
      即可直接将sentinel的配置写入nacos中保存,然后sentinel中的规则就会有

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

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

相关文章

外卖项目08---Linux

目录 一、 Linux简介 119 二、Linux安装 120 三、常用命令 122 3.1Linux命令初体验 3.1.1 command [-options] [parameter] 3.2Linux常用命令---文件目录操作命令-ls&-cd&-cat 124 3.2.1list 3.2.2 cd 3.2.3 cat 3.3 Linux常用命令---文件目录操作命令…

9.前端笔记-CSS-CSS三大特性

三大特性:层叠性、继承性、优先级 1、层叠性(覆盖性) 给相同的选择器设置相同的样式,此时一个样式会覆盖(层叠)其他冲突的样式。 层叠性原则: 同一选择器,样式冲突,遵…

OpenMV输出PWM,实现对舵机控制

OpenMV的定时器官方函数介绍:Timer类 – 控制内部定时器 目录 OpenMV的PWM资源介绍 为什么要用OpenMV输出PWM OpenMV的PWM资源分配 资源 注意 建议 PWM输出代码 代码讲解 Timer Timer.channel tim.channel与Timer.channel区别 Timer.channel解析 OpenM…

Iframe通信

跨域的种类 一般有两种形式的跨域问题: ①使用XmlHttpRequest(XHR)或者使用AJAX发送的POST或者GET请求。这种形式的跨域是:前端页面与后端进行的跨域请求。 ②父子页面之间进行的DOM操作(父子窗口之间的document操作)。这种形式…

使用XShell、XFTP 连接 win7 虚拟机(windows、Linux无法远程登录问题)

文章目录前言出错原因(题外话)那么我们为什么要使用 SSH 连接开始操作(Windows7)首先进行 SSH 测试获取所需的openSSH文件安装openSSH添加环境变量ssh测试发布ssh服务开始操作(Linux,以Ubuntu为例&#xff…

Linux启动流程分析

一、Linux启动流程图 二、硬件启动流程 2.1、POST Linux开机加电后,系统开始开机自检,该过程主要对计算机各种硬件设备进行检测,如CPU、内存、主板、硬盘、CMOS芯片等。主要完成检测硬件能否满足运行的基本条件,叫做“硬件自检(P…

【网络编程】第一章 网络基础(协议+OSI+TCPIP+网络传输的流程+IP地址+MAC地址)

🏆个人主页:企鹅不叫的博客 ​ 🌈专栏 C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C初阶和进阶《深入理解计算机操作系统》《高质量C/C编程》Linux ⭐️ 博主码云gitee链接:代码仓库地址 ⚡若有帮助可以【关注点赞收藏】…

onnx-modifier使用

文章目录**0、作用和功能****1、准备****2、界面介绍****3、注意tips**onnx-modifier基于流行的模型可视化工具 Netron 和轻量级Web应用框架 flask 开发。希望它能给社区带来一些贡献0、作用和功能 经常作为不同框架模型转化的中间文件,拿到ONNX文件,想…

KMP算法【一句话概括什么是KMP】【手写 求next数组】【手写匹配过程】

这里写自定义目录标题1. 什么是KMP算法2. next数组的表示含义怎么算3. 匹配过程例题——KMP字符串1. 什么是KMP算法 KMP算法:给定abcabm字符串和abcabcabm字符串,求前面字符串在后面字符串出现的位置,我们从头开始依次遍历,当遍历…

Supervisor - 用户进程监控利器

Supervisor Supervisor 是一个客户端/服务器系统,允许用户在UNIX操作系统上监视、控制用户进程。从定义里面分析包含两层意思。 监控进程 - 监控进程状态 确定当前进程是否发生异常控制进程 - 针对进程异常情况 控制进程的行为 如重启当前进程 Supervisor 通过 F…

神经网络和深度学习-logistic回归

logistic回归 logistic回归常用于分类问题 ,根据输入的x来估计属于不同类的概率为多少,满足分布,即所有类的概率总和为1 在torchvison包中提供了一些常用的数据集,供我们使用,例如:Mnist数据集 Cifar-10数…

力扣算法入门刷题2

12、删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 输入:head [1,1,2] 输出:[1,2[ //链表结构 public class ListNode {* int val;* List…

【情感识别】BP神经网络语音情感识别【含Matlab源码 349期】

⛄一、BP神经网络语音情感识别简介 0 引言 随着科技的迅速发展, 人机交互显得尤为重要。语音是语言的载体, 是人与人之间交流的重要媒介。相较于其它交流方式而言, 语音交流更加直接、便捷。近年来, 随着人机交互研究的不断深入, 语音情感识别更成为了学术界研究的热点, 其涉及…

3年测试经验,投了300多份简历,没公司要我...

前言 软件测试行业3年多经验,学历大专自考本科,主要测试方向web,PC端,wap站,小程序公众号都测试过,app也测过一些,C端B端都有,除功能外,接口性能也有涉猎,但…

一条命令能实现前端本地代码和打包仓库的自动化提交?

背景: 先介绍我们原本的代码上线流程:首先发布仓和代码仓(dev和master分支对应测试和生产环境)独立,每次修复或新增功能,首先需要提交改动到代码仓(fork),然后打包代码&…

TI Sitara系列 AM64x开发板——FreeRTOS、Baremetal案例开发案例

前 言 3 1 开发环境搭建 2 CCS工程编译与加载 3 FreeRTOS与Baremetal案例 评估板简介 创龙科技TL62x-EVM是一款基于TI Sitara系列AM62x单/双/四核ARM Cortex-A53 + 单核ARM Cortex-M4F异构多核处理器设计的高性能低功耗工业评估板,由核心板和评估底板组成。处理器ARM Cor…

SpringCloud之微服务实用篇2

在之前我们学习微服务中的两个组件,一个是注册中心,一个负载均衡器。今天,我们主要学习三个内容,分别是:Nacos配置管理、Feign远程调用、Gateway服务网关。 目录 一、Nacos配置管理 1.1、Nacos实现配置管理 1.2、微…

Redis持久化策略AOF、RDB详解及源码分析

写在前面 以下内容是基于Redis 6.2.6 版本整理总结 一、Redis为什么要持久化 Redis 是一个内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效…

数论简单问题

数论基本问题约数个数问题约数之和问题1-n中所有1-n因子的数量n!分解后某个质因子的个数欧拉函数公式法求欧拉函数线性筛求欧拉函数欧拉函数在线性筛中的三种情况:欧拉定理逆元费马定理求逆元快速幂求逆元扩展欧几里得算法扩展欧几里得算法证明扩展欧几里得的应用中…

消息队列 - RabbitMQ

1. 名词解释 Producer:生产者 Broker:接收和分发消息的应用 Connection:生产者和消费者与 Broker 之间的 TCP 连接 Channel:信道;在 Connection 内部建立的逻辑连接,每个 Channel 之间是相互隔离的。相…