当前位置: 首页 > news >正文

Spring Cloud Alibaba微服务从入门到进阶(七)(服务容错-Sentinel)

雪崩效应
我们把基础服务故障,导致上层服务故障,并且这个故障不断放大的过程,成为雪崩效应。
在这里插入图片描述雪崩效应,往往是因为服务没有做好容错造成的。
微服务常见容错方案
在这里插入图片描述仓壁模式
比如让controller有自己独立的线程池,线程池满了就直接拒绝请求
在这里插入图片描述断路器模式
对api进行监控,设置一段时间内的错误率、错误次数。
如果一段时间内达到预值,断路器就会打开,不去调用远程api了。
(断路器模式设计了半开状态,远程api恢复后,断路器可以再次闭合。)
在这里插入图片描述使用Sentinel实现容错
Sentinel是一个实现服务容错的库。
微服务整合sentinel
加依赖(无注解、无配置)
在这里插入图片描述服务整合Sentinel后,通过actuator/sentinel可以访问到
在这里插入图片描述搭建Sentinel控制台
在这里插入图片描述登录,账户/密码 sentinel/sentinel
在这里插入图片描述在这里插入图片描述目前控制台上什么都没有,在服务配置上整合sentinel的控制台地址
在这里插入图片描述调用服务后再刷新控制台,可以看到服务(sentinel和ribbon一样都是懒加载的)
在这里插入图片描述在这里插入图片描述用@SentinelResource注解,进行限流和降级
在这里插入图片描述在这里插入图片描述可以把block/fallback抽离出业务代码,定义单独类
在这里插入图片描述在这里插入图片描述RestTemplate整合Sentinel
使用@SentinelRestTemplate注解
将注解加在服务初始化类上,就可以给RestTemplate整合Sentinel了
在这里插入图片描述写测试代码(就是使用feign之前的那段代码)
在这里插入图片描述查看sentinel控制台->簇点电路
在这里插入图片描述多出来的两行就是@SentinelRestTemplate注解支持的。
RestTemplate整合Sentinel还提供了一个开关resttemplate.sentinel.enabled
在这里插入图片描述Feign整合Sentinel
只需要添加配置 feign.sentinel.enabled = true
在这里插入图片描述Sentinel控制台结果和上面整合RestTemplate效果一下
在这里插入图片描述如果服务被流控了,不想抛异常,
可以在UserCenterFeignClient接口@FeignClient注解上指定fallback参数到指定的类上
在这里插入图片描述该类实现UserCenterFeignClient接口
在这里插入图片描述配置sentinel流控规则,实现效果是“一个默认用户”,而不是抛异常了
在这里插入图片描述Sentinel使用总结
在这里插入图片描述

http://www.lryc.cn/news/322536.html

相关文章:

  • Arduino RP2040 + SSD1306 I2C OLED +LittleFS存储GBK字库实现中文显示
  • 代码随想录算法训练营第day53|1143.最长公共子序列 、 1035.不相交的线、 53. 最大子序和 动态规划
  • 【Flutter学习笔记】10.2 组合现有组件
  • C++的vector类(一):vector类的常见操作
  • SpringBoot注解
  • 每日三个JAVA经典面试题(十九)
  • springboot企业级抽奖项目业务一(登录模块)
  • 【Python + Django】启动简单的文本页面
  • Docker——问题解决:服务器端和Windows端IP互通
  • HTTP跨域
  • 用Python的turtle库绘制皮卡丘
  • C语言打印当前时间
  • (一)基于IDEA的JAVA基础4
  • 【Python】复习12:标准库与第三方库
  • CUDA 12介绍
  • 旅游系统-软件与环境
  • AI基础知识(2)--决策树,神经网络
  • 蓝桥杯C++大学B组一个月冲刺记录2024/3/21
  • 由浅到深认识C语言(14):枚举
  • 速盾cdn:cdn节点缓存内容不一致怎么办?
  • 【LAMMPS学习】三、构建LAMMPS(6)在构建中包含软件包
  • apache commons-dbcp Apache Commons DBCP 软件实现数据库连接池 commons-dbcp2
  • 8.2K star!史上最强Web应用防火墙
  • 浅谈RPC的理解
  • JDK发布信息、历史及未来规划
  • 帅帅密码管理系统使用教程
  • 漫谈5种注册中心
  • Vulnhub靶机:Kioptrix_2014
  • Spring Boot整合Spring Security
  • Rust字符串深入理解