微服务守护神-Sentinel-降级规则

news2024/12/23 18:33:18

引言

书接上篇 微服务守护神-Sentinel-流控规则 ,上面介绍了Sentinel流控规则,本篇继续来Sentinel的降级规则。

降级规则

那啥为降级呢?降级可以理解为下降等次,比如:你从广州到北京,有钱时,你可以坐头等舱去北京,没钱时,你可以坐动车去北京。目标一样,方式不同,体验不同。飞机比动车,动车就是降级。开发中也是一样,比如:服务A调用服务B,理想状态返回服务A想要的结果,如果哪天服务B宕机了调不通,此时走降级,快速返回调用异常提示结果。保证时间用在该用的地方。

Sentinel降级规则就是设置当满足什么条件的时候,对服务进行降级。Sentinel提供了三个衡量条件:

  • 慢调用比例: 选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。

  • 异常比例: 当单位统计时长内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。

  • 异常数:当单位统计时长内的异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。

慢调用比例案例

步骤1:在shop-order-server项目中新增FallBackController.java类

package cn.wolfcode.controller;
@RestController
@Slf4j
public class FallBackController {
    @RequestMapping("/fallBack1")
    public String fallBack1(){
        try {
            log.info("fallBack1执行业务逻辑");
            //模拟业务耗时
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "fallBack1";
    }
}

步骤2:新增降级规则

上面配置表示,如果在1S之内,有【超过1个的请求】且这些请求中【响应时间>最大RT】的【请求数量比例>10%】,就会触发熔断,在接下来的10s之内都不会调用真实方法,直接走降级方法。

比如: 最大RT=900,比例阈值=0.1,熔断时长=10,最小请求数=10

  • 情况1: 1秒内的有20个请求,只有10个请求响应时间>900ms, 那慢调用比例=0.5,这种情况就会触发熔断

  • 情况2: 1秒内的有20个请求,只有1个请求响应时间>900ms, 那慢调用比例=0.05,这种情况不会触发熔断

  • 情况3: 1秒内的有8个请求,只有6个请求响应时间>900ms, 那慢调用比例=0.75,这种情况不会触发熔断,因为最小请求数这个条件没有满足.

注意: 我们做实验的时候把最小请求数设置为1,因为在1秒内,手动操作很难在1s内发两个请求过去,所以要做出效果,最好把最小请求数设置为1。

步骤3:测试访问: http://localhost:8091/fallBack1

异常比例案例

 步骤1:在shop-order-server项目的FallBackController.java类新增fallBack2方法

int i=0;
@RequestMapping("/fallBack2")
public String fallBack2(){
	log.info("fallBack2执行业务逻辑");
	//模拟出现异常,异常比例为33%
    if(++i%3==0){
		throw new RuntimeException();
	}
	return "fallBack2";
}

步骤2:新增降级规则

 上面配置表示,在1s之内,,有【超过3个的请求】,异常比例30%的情况下,触发熔断,熔断时长为10s.

步骤3:测试访问: http://localhost:8091/fallBack2

异常数案例

步骤1:在shop-order-server项目的FallBackController.java类新增fallBack3方法

@RequestMapping("/fallBack3")
public String fallBack3(String name){
	log.info("fallBack3执行业务逻辑");
	if("wolfcode".equals(name)){
		throw new RuntimeException();
	}
	return "fallBack3";
}

步骤2:新增降级规则

上面配置表示,在1s之内,,有【超过3个的请求】,请求中超过2个请求出现异常就会触发熔断,熔断时长为10s  

步骤3:测试访问: http://localhost:8091/fallBack3

ok,到这,sentinel的降级规则就ok啦,后面还有啥规则呢?且听下回分解。

 看文字不过瘾可以切换视频版:SpringCloud Alibaba 极简入门

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

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

相关文章

Kafka的认证

Kafka支持基于SSL和基于SASL的安全认证机制。 基于SSL的认证主要是指Broker和客户端的双路认证。即客户端认证broker的证书,broker也认证客户端的证书。 Kafka还支持通过SASL做客户端认证。SASL是提供认证和数据安全服务的框架。Kafka支持的SASL机制有5种&#xff…

Docker容器化技术入门(一)Docker简介

Docker容器化技术入门(一)Docker简介前言(一)Docker简介1 Docker是什么?1.1 Docker的出现1.2 Docker的理念1.3 一句话2 容器与虚拟机比较2.1 容器发展简史2.2 传统虚拟机技术2.3 容器虚拟化技术2.4 对比3 Docker能干什…

华硕编程竞赛11月JAVA专场 D题飞机大战 题解

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

org.eclipse.e4.core.di.InjectionException: Unable to proces

eclipse RCP 项目在eclipse 插件程序中正常运行,导出eclipse product后运行报错。路径:【项目名称】–>workspace–>.metadata–>.log 报错信息如下: !SESSION 2022-12-08 17:19:22.227 ------------------------------------------…

MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究...

全文链接:http://tecdat.cn/?p30766本文就将采用改进Fuzzy C-means算法对基于用户特征的微博数据进行聚类分析。去年,我们为一位客户进行了短暂的咨询工作,他正在构建一个主要基于微博用户特征聚类研究的分析应用程序(点击文末“…

从零开始带你实现一套自己的CI/CD(二)Jenkins+Sonar Qube

目录一、简介二、Sonar环境搭建2.1 下载Docker镜像2.2 使用docker-compose部署三、Sonar Qube基本使用3.1 Maven实现代码检测3.2 Sonar-scanner实现代码检测四、Jenkins集成Sonar Qube4.1 下载插件4.2 SonarQube生成Token4.3 Jenkins配置Sonar Token信息4.4 Jenkins全局工具配置…

word如何设置页码?一分钟教你设置Word文档的页码!

你知道Word怎么设置页码吗?可能你还找不到页码在何处。相信有很多人也会遇到这些类似的问题。如何在Word文档里面的任意一页设置页码呢?word如何设置页码?现在小编就把设置页码的过程和截图分享出来,本文仅供参考使用。有需要的朋…

算法刷题打卡第40天:打家劫舍

打家劫舍 难度:中等 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。…

全解一款六面体结构化网格划分利器-NUMECA IGG

作者 |卢工FunRun 仿真秀优秀讲师 导读:前不久,VIP群有人提问:“老师,NUMECA如何计算带蜗壳叶轮机呢”?笔者使用NUMECA FINE/Turbo(以下简称Turbo)软件解决叶轮机械气动性能仿真计算已有三年多&…

nRF Connect的使用

一、工具简介 nRF Connect是NORDIC开发的一款低功耗蓝牙测试APP,仅支持安卓。可以扫描和探索低功耗蓝牙设备并与它们通信。 蓝牙通信的核心是向硬件发送数据和接收硬件传回来的数据。 二、准备项 Android手机 蓝牙硬件 三、使用简介 1、进入界面 (1&…

某科技公司防火墙配置与管理

目录 杭州继保南瑞电子科技有限公司… 1 公司简介…2需求分析… 错误!未定义书签。公司网络拓扑图…4IP 地址规划 …4设备选型…5技术介绍…6 6.1 DMZ …6 6.2 VPN …6 6.3 NAT …6 6.4 ACL …7项目实施…7 7.1 DMZ 区域配置及结果测试 …7 7.1.1 防火墙基本配置…8 7.1.2 内网…

粉笔通过上市聆讯:上半年营收14.5亿 腾讯经纬高瓴是股东

雷递网 雷建平 12月7日职业教育平台粉笔科技今日通过聆讯,准备在港交所上市。花旗、中金(香港)和美银证券为其联席保荐人。粉笔科技此次募资用途为丰富课程内容、扩大学员群体、加强内容及技术开发能力等。上半年营收14.51亿粉笔科技成立于20…

# spring-security(一)

一、权限管理简介 1、什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。 ​ 权限管理…

学习笔记-3-SVM-9-Twin SVM

Outline 1. Motivation 2. Geometry 3. Algebraic manipulation 4. Observations ------------------------------ 1. Motivation Twin SVM的基本出发点是做二分类时,为什么我们只用1个分割超平面,为什么不能用两个呢? 这里是想用两个…

CVT变速器中壳体吊机设计

目 录 1 绪论 1 1.1 课题的研究目的和意义 1 1.2 课题研究的内容 1 2 CVT变速器中壳体吊机总体设计 3 2.1 性能参数 3 2.2 确定主要工作机构和金属结构的形式 4 2.2.1 确定主要工作机构形式 4 2.2.2 金属结构选型 11 2.3 载荷的计算 13 2.3.1 自重载荷 13 2.3.2 起升载荷 14 2.…

HTTP常见状态码

网上都有状态码的说明但是有些不全所以我特此在这里整理一下,这个图来自小林大佬的图 1xx 100 表示客户还需要继续发送请求 101 客户要求服务器根据请求转换HTTP协议版本号 2xx 200 成功 201 提示知道新文件的URL 202 接受和处理、但处理未完成 203 返…

Redis缓存优化、本地锁及分布式锁的入门使用思想实现

Redis缓存优化、本地锁及分布式锁的入门使用思想实现 1、依赖启动器引入 <!-- redis --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency><!…

行为管理(锐捷业务软件篇)

大家好&#xff0c;我是小杜&#xff0c;古人云“好好学习&#xff0c;天天向上”。我要学习“古人”好榜样──三更鸡鸣、五......做为新时代的五好青年只能说“小杜”做不到啊&#xff01;不过提早到公司学习还是可以的。 之前了解了软件产品如何部署实施后。我们今天来看看对…

大一html5期末大作业 :基于html实现非遗文化网页设计题材【传统文化木雕】7个页面

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

如何压缩png图片大小?

png这种图片格式大家应该都熟悉吧&#xff1f;&#xff0c;跟jpg格式有着同样高的使用率。只不过png图片偏于专业化&#xff0c;而jpg更具平常性。举个不恰当的例子Jpg格式就好比相当于口语&#xff0c;而png格式相当于比较正式的书面用语的意思&#xff0c;所以很多小伙伴经常…