SpringCloud-服务降级

原文视频链接:https://www.bilibili.com/video/BV18E411x7eT?from=search&seid=11303564036825263144
springCloud中文文档:https://www.bookstack.cn/read/spring-cloud-docs/docs-index.md
springCloud中文网:https://www.springcloud.cc

1,Hystrix服务降级

1.1,hystrix简介

在这里插入图片描述
在这里插入图片描述

1.2,hystrix作用

  • 服务降级
    比如当某个服务繁忙,不能让客户端的请求一直等待,应该立刻返回给客户端一个备选方案

  • 服务熔断
    当某个服务出现问题,卡死了,不能让用户一直等待,需要关闭所有对此服务的访问,然后调用服务降级

  • 服务限流
    限流,比如秒杀场景,不能访问用户瞬间都访问服务器,限制一次只可以有多少请求

1.3,使用hystrix,服务降级

一般服务降级,都是放在客户端

1.3.1,pom文件

feign依赖自带了hystrix

1.3.2,配置文件

feign:
  hystrix:
    enabled: true

1.3.3,主启动类添加直接,启用hystrix

在这里插入图片描述

1.3.4,与feign结合

它的运行逻辑是:
        当请求过来,首先还是通过Feign远程调用pay模块对应的方法
        但是如果pay模块报错,调用失败,那么就会调用PayMentFalbackService类的
        当前同名的方法,作为降级方法

第一步,Payservice接口是远程调用pay模块的,我们这里创建一个类实现service接口,在实现类中统一处理异常
在这里插入图片描述
第二步,修改配置文件:添加:

feign:
  hystrix:
    enabled: true

第三步,让PayService的实现类生效:
在这里插入图片描述

1.4,使用服务熔断

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

断路器的打开和关闭,是按照一下5步决定的
        1,并发此时是否达到我们指定的阈值
        2,错误百分比,比如我们配置了60%,那么如果并发请求中,10次有6次是失败的,就开启断路器
        3,上面的条件符合,断路器改变状态为open(开启)
        4,这个服务的断路器开启,所有请求无法访问
        5,在我们的时间窗口期,期间,尝试让一些请求通过(半开状态),如果请求还是失败,证明断路器还是开启状态,服务没有恢复
        如果请求成功了,证明服务已经恢复,断路器状态变为close关闭状态

1.4.1,Hystrix所有可配置的属性

以后需要什么属性,查看这个类即可(HystrixCommandProperties.class)
在这里插入图片描述

1.4.2,总结在这里插入图片描述

当断路器开启后:
在这里插入图片描述
其他参数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
熔断整体流程:

1请求进来,首先查询缓存,如果缓存有,直接返回
        如果缓存没有,--->2
        2,查看断路器是否开启,如果开启的,Hystrix直接将请求转发到降级返回,然后返回
        如果断路器是关闭的,
        判断线程池等资源是否已经满了,如果已经满了
        也会走降级方法
        如果资源没有满,判断我们使用的什么类型的Hystrix,决定调用构造方法还是run方法
        然后处理请求
        然后Hystrix将本次请求的结果信息汇报给断路器,因为断路器此时可能是开启的
        (因为断路器开启也是可以接收请求的)
        断路器收到信息,判断是否符合开启或关闭断路器的条件,
        如果本次请求处理失败,又会进入降级方法
        如果处理成功,判断处理是否超时,如果超时了,也进入降级方法
        最后,没有超时,则本次请求处理成功,将结果返回给controller

1.5,Hystrix服务监控

1.5.1,HystrixDashboard介绍

在这里插入图片描述

1.5.2,如何使用HystrixDashboard(服务端):

pom文件
配置文件
主启动类
在这里插入图片描述

1.5.3,如何使用HystrixDashboard(客户端):

pom文件
在这里插入图片描述
客户端主启动类添加
在这里插入图片描述
1.5.4,监控web界面分析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值