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使用总结
在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-03-18 06:54:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-18 06:54:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-18 06:54:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-18 06:54:04       18 阅读

热门阅读

  1. python request pandas excel 接口自动化测试框架

    2024-03-18 06:54:04       17 阅读
  2. 【XML】xml转Freemind思维导图

    2024-03-18 06:54:04       18 阅读
  3. string和stringbuilder

    2024-03-18 06:54:04       17 阅读
  4. Unity转换字符串中文繁简体

    2024-03-18 06:54:04       19 阅读
  5. python图形化编程turtle小乌龟

    2024-03-18 06:54:04       17 阅读
  6. 大语言模型相关工具使用链接

    2024-03-18 06:54:04       20 阅读
  7. LLaMA-2 简介:开源大型语言模型的新篇章

    2024-03-18 06:54:04       19 阅读
  8. Linux初级知识大全(一)

    2024-03-18 06:54:04       20 阅读
  9. Spark 用AnyFunSuite单元测试Scala详细教程

    2024-03-18 06:54:04       17 阅读