【微服务】Hystrix

07/03 11:03
阅读数 46

what

服务降级:

服务器忙,请稍后再试,不让客户端等待并立刻返回一个友好提示,fallback
哪些情况触发降级?

  • 程序运行异常
  • 超时
  • 服务熔断触发服务降级
  • 线程池/信号量打满也会导致服务降级

降级用在服务提供者还是服务消费者呢?
都可以的,不过大多数情况是用在服务消费者多一些啦。

服务熔断:

类比保险丝达到最大服务访问后,直接拒绝访问,拉闸限电,然后调用服务降级的方法并返回友好提示,fallback
熔断是什么?
熔断机制是对应雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断改节点微服务的调用,快速返回错误的响应信息。
当检测到该节点微服务调用响应正常后,恢复调用链路。


断路器

服务限流:

秒杀高并发等操作,严禁一窝蜂的过来拥挤,大家排队,一秒钟N个,有序进行

why

为什么微服务我们要用Hystrix呢?因为它可以解决分布式系统交互时超时处理和容错的类库, 它同样拥有保护系统的能力。

How

在SpringCloud框架里,熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。使用@HystrixHystrixCommand注解。

maven引入Hystrix依赖

  <!--hystrix -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>

假设在调用某个服务的时候出现异常,在方法上加@HystrixCommand注解,通过她中fallbackMethod去调用提示方法。
在这里插入图片描述
假设我们出现超时的异常
在这里插入图片描述


注解

@HystrixProperty

@HystrixProperty全局服务降级
避免代码膨胀,合理减少代码量,我们可以通过@HystrixProperty解决每个方法上加一个降级方法。通过@HystrixProperty直接在类上加@HystrixProperty就可以了,方法上直接写@HystrixCommand注解。
实例:
在这里插入图片描述


@FeignClient

@FeignClient 通配服务降级
通过@FeignClient中的fallback解决了解耦,实现了服务降级,解决了到吗膨胀,代码混乱。
实例:
在这里插入图片描述


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
在线直播报名
返回顶部
顶部