Spring Cloud微服务入门(五)

Sentinel的安装与使用

安装部署Sentinel

下载Sentinel: https://github.com/alibaba/Sentinel/releases

Sentinel控制台

https://localhost:8080

用户和密码为sentinel

使用Sentinel

加依赖:

写配置:

 

 

输入: java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.7.jar

 

启动内容中心、用户中心服务,访问内容中心api:

 我们在Sentinel控制台的实时监控菜单,可以看到服务通过的QPS等信息,说明Sentinel与我们的应用整合成功。

Sentinel的容错策略

流控规则。
概念:

         流控规则的是监控应用或服务流量的QPS指标,当指标达到设定的阈值时立即拦截流量,避免应用被瞬时的流量高峰冲垮,从而保障应用高可用性。

应用场景:

        削峰填谷,使流量匀速通过。

        当资源争抢时,留足资源给优先级高的接口。

        预热启动,避免大流量冲击。

流控规则配置项

针对来源: 默认值为:default。 可以指定是浏览器还是APP。

阈值类型:

        QPS:可通过的最大请求量。

        线程数:达到一定的线程数就开始限流。

单机阈值:数值,是阈值类型的最大值。

流控模式。

        直接:达到请求数,直接就报错。

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

        链路:只记录指定链路上的流量。

流控效果。

        快速失败:直接失败,抛异常。

        Warm Up:根据codeFactor(冷加载因子,默认3)的值,从阈值/codeFactor,经过预热时长,才达到设置的QPS的阈值。适用于秒杀微服务。

        排队等待:匀速排队的设计,让请求以均匀的速度通过,阈值类型必须设成QPS,否则无效。适用于突发大量请求。

降级规则。
概念:

        由于调用关系的复杂性,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生堆积。熔断降级功能会在调用链路中某个资源出现不稳定时(例如某资源出现超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。

应用场景:

         监控应用下游依赖应用的响应时间或异常比例。 被监控的达到阈值时立即降低下游依赖应用优先级。 保障应用可用性。

慢调用比例:

        设置允许的慢调用RT(即最大的响应时间),请求的响应大于该值则统计为慢调用。

        当单位统计时长内请求数目大于设置的最小请求数目,并且慢调用比的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。

        经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。

异常比例:

        当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。

        经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。

        异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。

异常数:

        当单位统计时长内的异常数目超过阈值之后会自动进行熔断。

        经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。

热点规则。
概念:

        热点就是经常访问的数据,比如商品接口的 QPS 限定的是 100,有一天要秒杀,带着秒杀商品 id 的请求的 QPS 限制在 50,这样还能有 50 的 QPS 用来访问其他的商品。

应用场景:

         根据请求的参数来做限流

注意点: 参数必须是基本类型或者String。

热点规则配置项

        资源名:@SentinelResource(value=“xxx”)中的value值。

        参数索引:针对第几个参数,从0开始。

        参数类型:配置的参数索引位置的参数类型。

        参数值:具体要限流的参数值。 限流阈值:允许的QPS值。

         单机阈值:不是1的情况下,允许的QPS就是10。

        统计时间窗口:统计的时间单位,一般都是1s。

系统规则。
概念:

         系统规则是针对一个应用设定的,是粗粒度的配置。

应用场景:

        一般不建议使用,配置后,可能导致程序在莫名情况下发生异常,导致整个程序不能使用。

系统规则配置

        Load: 当系统Load1(1分钟的load)超过阈值,且并发线程数超过系统容量时触发,建议设置为CPU核心数*2.5(仅对Linux/Unix-like机器生效)。

        系统容量: maxQps * minRt    maxQps:秒级统计出来的最大QPS   minRt:秒级统计出来的最小响应时间。

        RT: 所有入口流量的平均RT达到阈值触发。

        线程数: 所有入口流量的并发线程数达到阈值触发。

        入口QPS: 所有入口流量的QPS达到阈值触发。

授权规则。
集群流控。

为Feign整合Sentinel

在application.yml中增加配置,再看sentinel控制台会发现,资源变成了feign的形式,并且服务提供者的资源也会显示出来,具体配置如下:

Sentinel错误页优化 

实现BlockExceptionHandler接口,根据异常类型判断:

        DegradeException,限流规则异常。

        FlowException,降级规则异常。

        ParamFlowException,热点规则异常。

        SystemBlockException, 系统规则异常。

        AuthorityException, 授权规则异常。

Sentinel实现区分来源

实现RequestOriginParser接口,实现parseOrigin,解析参数:

        可以使用URL参数指定,但不推荐。

        可以使用Header指定,推荐使用。

Sentinel持久化

两种模式:

        推模式,更适用于生产环境,但实现复杂,修改源码。

        拉模式,实现简单,但更新规则会有延迟。

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

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

相关文章

UI自动化测试-pytest框架

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

Lua热更新(AssetBundle)

AssetBundle 新版本导入ab包报错,则删除其中的Tests文件夹。 给资源分组 打包设置:平台、路径、重复打包清空文件夹、复制到streaming文件夹 建议勾选 建议使用LZ4压缩方式 用来观察文件中的包大小,不常用 参数总结: 这六个只做了解,重要的是上面的

Struts2的入门:新建项目——》导入jar包——》jsp,action,struts.xml,web.xml——》在项目运行

文章目录 配置环境tomcat 新建项目导入jar包新建jsp界面新建action类新建struts.xml,用来配置action文件配置Struts2的核心过滤器:web.xml 启动测试给一个返回界面在struts.xml中配置以实现页面的跳转:result再写个success.jsp最后在项目运行 配置环境 …

【数据分享】我国第七次人口普查的100m分辨率人口栅格数据(免费获取\tif格式\2020年)

人口空间分布数据是我们在各项研究中经常使用的数据。之前我们分享过来源于LandScan数据集的2000-2022年的1km精度的人口空间分布栅格数据(可查看之前的文章获悉详情)! 相较于LandScan全球人口数据集,我国历次人口普查的数据对于…

SpringBoot通用模块--文件上传开发(阿里云OSS)

文件上传,是指将本地图片、视频、音频等文件上传到服务器上,可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发抖音、发朋友圈都用到了文件上传功能。 实现文件上传服务,需要有存储的支持,那…

基于支持 GPT 的服务的初创公司

Kafkai:多语言长篇内容生成,AI写作的新趋势 介绍 随着生成式预训练 Transformer (GPT) 的出现,技术世界正在见证范式转变。 这种人工智能驱动的创新不仅仅是一种转瞬即逝的趋势,而是一种趋势。 它已成为科技行业的基石&#xff0c…

【C语言】简单介绍进制和操作符

🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 本文简要介绍进制和操作符,愿能为您提供帮助!文章…

异常的种类

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 Oracle 运行时错误可以分为 Oracle 错误和用户自定义错误,与此对应,根据异常产生的机制和原理,可将 Oracle 的系统异常分为 3 种 预定义…

使用VPN时,Java程序无法访问远程网络的解决办法

应用场景: 电脑连接VPN之后,Java程序无法连接远程服务,比如第三方接口、远程数据库连接、远程微服务等。我个人遇到的情况有连接海康威视SDK,influxdb以及一些微服务。 解决办法: 启动Java时加入参数:-D…

比较好玩的车子 高尔夫6

https://www.sohu.com/a/484063087_221273 四万多如愿收获手动挡高尔夫6,可靠性、经济性、操控性兼顾_搜狐汽车_搜狐网 2.基本上其他人也不知道到底是什么相关的车子信息

基于单片机和ICL7135多档位数字电压表设计

**单片机设计介绍,基于单片机和ICL7135多档位数字电压表设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机和ICL7135的多档位数字电压表设计是一个结合了硬件与软件技术的综合性项目。这种设计旨在实现一…

Pnpm + Turbo 搭建 Web Component Monorepo 组件库

技术选型 使用 Pnpm Turbo 搭建 Web Component Monorepo项目 stencil-component-ui 组件库 pnpm 作为包管理器Turborepo 作为构建系统Vitepress 管理文档 pnpm 技术 什么是 pnpm? 它有哪些优势? pnpm 跟 npm、yarn一样,都是用于管理Node包依赖的管…

iOS App Store审核要求与Flutter应用的兼容性分析

本文探讨了使用Flutter开发的iOS应用能否上架,以及上架的具体流程。苹果提供了App Store作为正式上架渠道,同时也有TestFlight供开发者进行内测。合规并通过审核后,Flutter应用可以顺利上架。但上架过程可能存在一些挑战,因此可能…

云岚到家项目

一.项目介绍 云岚到家项目是一个家政服务o2o平台,互联网家政是继打车、外卖后的又一个风口,创业者众多,比如:58到家,天鹅到家等,o2o(Online To Offline)是将线下商务的机会与互联网…

openharmony launcher 调研笔记(03)UI 数据装配

最近在看launcher,把自己调研的点做个笔记,持续修改更新中,个人笔记酌情参考。 桌面上半部分包含父子逻辑: Column() { PageDesktopLayout(); } PageDesktopLayout->GridSwiper->Swiper->SwiperPage 1.PageDe…

25.11 MySQL 视图

1. 常见的数据库对象 对象描述表(TABLE)存储数据的逻辑单元, 以行和列的形式存在, 列就是字段, 行就是记录.数据字典系统表, 存放数据库相关信息的表. 数据通常由数据库系统维护, 程序员通常不可修改, 只可查看.约束(CONSTRAINT)执行数据校验的规则, 用于保证数据完整性的规则…

2024马来西亚电商选品博览会

2024马来西亚电商选品博览会 展会概况 展会名称:2024马来西亚电商选品博览会 主办单位:广东进出口商会 时间:2024.11.29-12.1 地点:马来西亚国际贸易展览中心(MITEC) 展览面积:10000平方米 展会简介 2024马来西亚跨境电商选…

包和final.Java

1,包 包就是文件夹。用来管理不同功能的Java类,方便后期代码的维护。 (1)包名的规则是什么? 公司域名反写报的作用,需要全部英文小写,见名知意。com.itheima.domain (2&#xff…

抓住风口,快速上手RAG应用开发!

免责声明~ 任何文章不要过度深思! 万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案」; 不要急着评判文章列出的观点,只需代入其中,适度…

蓝桥杯第十一届c++大学B组详解

目录 1.字符串排序 2.门牌制作 3.即约分数 4.蛇型填数 5.跑步锻炼 6.七段码 7.成绩统计 8.回文日期 9.字串分值和 10.平面切分 1.字符串排序 题目解析:这个题目真没搞懂。有会的大佬教我一下谢谢。 2.门牌制作 题目解析:出过超级多这类题目&am…