【微服务】Hystrix

目录

  • what
    • 服务降级:
    • 服务熔断:
    • 服务限流:
  • why
  • How
  • 注解
    • @HystrixProperty
    • @FeignClient

what

服务降级:

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

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

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

服务熔断:

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

断路器

服务限流:

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

why

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

How

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

maven引入Hystrix依赖

  
        
            org.springframework.cloud
            spring-cloud-starter-hystrix
            1.4.6.RELEASE
        

假设在调用某个服务的时候出现异常,在方法上加@HystrixCommand注解,通过她中fallbackMethod去调用提示方法。
【微服务】Hystrix_第1张图片
假设我们出现超时的异常
【微服务】Hystrix_第2张图片

注解

@HystrixProperty

@HystrixProperty全局服务降级
避免代码膨胀,合理减少代码量,我们可以通过@HystrixProperty解决每个方法上加一个降级方法。通过@HystrixProperty直接在类上加@HystrixProperty就可以了,方法上直接写@HystrixCommand注解。
实例:
【微服务】Hystrix_第3张图片

@FeignClient

@FeignClient 通配服务降级
通过@FeignClient中的fallback解决了解耦,实现了服务降级,解决了到吗膨胀,代码混乱。
实例:
【微服务】Hystrix_第4张图片

你可能感兴趣的:(_______【后端】,hystrix,微服务)