feign 整合sentinel_SpringCloud实战五-Sentinel上
场景
微服务会划分出多个模块,模块之间的调用频率可能比较高,这时可能会存在服务雪崩(一个服务失败,导致整条链路的服务都失败的情形)的,如图:
随着时间的推移,从刚开始的C不可用变成了最终的系统不可用,此时,我们应该寻找容错的办法来避免雪崩效应。
容错的措施
1.设置超时:设置访问超时时间,超时后返回错误
2.限流:限制访问的流量
3.舱壁模式:设置多个线程池来分散流量
4.断路器模式:采用一个中间服务,如果A服务访问某个服务失败一定的次数,中间服务就开启,并停止A继续访问某服务,一段时间后中间服务关闭,A服务再次访问某服务,如此往复。着重解释断路器的三态转换,理解断路器的优势
Sentinel
Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性
整合Sentinel
添加依赖(actuator用来便于演示)
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
搭建Sentinel控制台
下载jar包:sentinel-dashboard-1.6.2.jar
运行java -jar sentinel-dashboard-1.6.2.jar
将应用整合到控制台,添加配置
spring:cloud:sentinel:transport:dashboard: localhost:8080
和Ribbon一样Sentinel也是懒加载
我们访问应用中Controller中一个方法
流控规则
访问方法之后,我们在簇点链路中可以为刚才访问的方法添加流控规则
QPS:访问次数
线程数:调用这个api的线程数
假设勾选了QPS,单机阈值是1
直接:当访问超过1,就进行限流
关联:当设定的方法达到阈值,就限流自己,适用于如果一个读方法,一个写方法,我们可以控制优先读还是优先写。
链路:只记录指定链路上的流量,适用于指定某个方法进行限流,比较细粒度。
Warm Up:可以让允许通过的流量缓慢增加,可以设置预热时长,即经过某个时长后,达到阈值,比较适用于秒杀等大访问量突增
排队等待:只适用于QPS,设置时长后,将请求排队等待,适用于流量突然增加,让流量均匀的增加。
降级规则
RT:秒级,默认4900ms,简单理解就是平均响应时间超出阈值并且在时间窗口内的请求大于设定的值次数触发降级,直到时间窗口设定的值结束,即
异常比例:秒级,QPS大于阈值,触发降级
异常数:分钟级,异常数超过阈值,触发降级
热点规则
在统计窗口统计时间内,某个参数索引的位置访问,超过阈值,就会被限流。可以对请求方法的参数进行限制,适用于某些参数访问非常高,同时希望提升api可用性的场景。
参数索引所使用的类型只能是基本类型
总结
本文介绍了引用Sentinel的引入和基本规则的配置,后续将介绍系统规则和授权规则,还有整合Feign客户端,持久化规则(推拉模式)以及部分源码解读。
后续会持续更新,可以关注公众号: 阿清的日常
后台留言,会细致解答。
feign 整合sentinel_SpringCloud实战五-Sentinel上相关推荐
- Feign整合Sentinel实现容错
Sentinel通过各种规则对资源进行保护,即进行服务容错.Feign使得调用远程服务就像调用本地服务一样简单.但是Feign在调用远程服务的时候,由于远程服务的原因,可能会产生异常.就需要进行相应的 ...
- ASP.NET MVC5微信公众平台整合开发实战教程
<ASP.NET MVC5&微信公众平台整合开发实战(响应式布局.JQuery Mobile,Windows Azure.微信核心开发)> 课程讲师:57Code 课程分类:ASP ...
- Sharding-JDBC 实战(史上最全)
文章很长,而且持续更新,建议收藏起来,慢慢读! Java 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 免费赠送 经典图书 : 极致经典 + 社群大片好评 < Java 高 ...
- 防止内卷和被潜规则,Spring Cloud Alibaba微服务架构实战派(上下册)|35岁程序员那些事
目录 1 写书缘由 2 本书上册核心内容 2.1 Spring Cloud Alibaba基础实战 2.1.1 主要内容 2.1.2 MyBatis-Plus实现多租户架构的核心原理 2.2 分布式服 ...
- 阿里开发规范文档_华为阿里等技术专家15年开发经验总结:SSM整合开发实战文档...
前言 Spring自2002年诞生至今,已有近20年的历史,虽然几经变迁,但始终在继续发展和精进.Spring目前由Pivotal维护和开发. Pivotal是PaaS(平台即服务)的领导者,也是消息 ...
- JWT认证原理、整合springboot实战应用
JWT认证原理.整合springboot实战应用 1.什么是JWT 2.JWT能做什么 3.与传统的session认证做对比 4.JWT结构 5.JWT的封装方法 1.什么是JWT JWT(Json ...
- 【转】Nutz | Nutz项目整合Spring实战
http://blog.csdn.net/evan_leung/article/details/54767143 Nutz项目整合Spring实战 前言 Github地址 背景 实现步骤 加入spri ...
- (转)Nutz | Nutz项目整合Spring实战
http://blog.csdn.net/evan_leung/article/details/54767143 Nutz项目整合Spring实战 前言 Github地址 背景 实现步骤 加入spri ...
- OpenCV C++案例实战五《答题卡识别》
OpenCV C++案例实战五<答题卡识别> 前言 一.图像矫正 1.源码 二.获取选项区域 1.扣出每题选项 2.源码 三.获取答案 1.思路 2.辅助函数 3.源码 4.效果 总结 前 ...
最新文章
- 机器学习算法清单!附Python和R代码
- uva 1610 聚会游戏
- POJ 1305 Fermat vs. Pythagoras【勾股数】
- Javascript中计算脚本运行的时间
- Eclipse中写jsp文件时,发现里面加载不了js文件和css文件(解决css文件在eclipse中显示不了)
- 20211108 能观能控,可稳可测
- java跟踪会话_JavaWeb会话跟踪
- Crontab中文表达式解析
- 2019年7月9日星期二(C语言)
- 实现输入界面适应键盘的显示和隐藏事件
- Python Day 19 面向对象(初识面向对象)
- 证明CLIQUE(团问题)是NP完全
- 游戏设计艺术 第2版 (Jesse Schell 著)
- (抖音快手)三种代码生成炫酷代码雨!!!
- 重磅消息:微信支付分最新开通方法!
- 【问题解决】java.lang.IllegalStateException异常是什么问题?解决办法
- 1.传感器学习笔记之初次相识
- 2022安徽省安全员C证试题及模拟考试
- 凡客副总裁被曝离职:或因IPO受阻|凡客|王春焕|离职_互联网_新浪科技_新浪网...
- FOMO3D的超万倍奖金,自导自演or黑天鹅事件?
热门文章
- 【Python基础知识-pycharm版】第十一节-文件操作(IO技术)
- Android全局窗口模糊,javascript – 窗口焦点和模糊事件在Android浏览器上无法正常工作...
- java 以太坊 智能合约_web3j教程:java使用web3j开发以太坊智能合约交易
- 前端DEMO:网络上流行的抖音罗盘
- Java集合Set,List和Map等
- JavaScript入门介绍 1 2021/02/27
- 简化Swagger使用的自制Starter:spring-boot-starter-swagger,欢迎使用和吐槽
- 架构师进阶之独孤九剑:设计模式详解
- 干货 | 机器学习算法在饿了么供需平衡系统中的应用
- 记录对String.format(Formatter().format())方法的总结