Hystrix熔断

负载均衡:就是将成为负载的工作任务,进行均衡

Hystrix一共有三种模式.1.后背模式(降级),2.熔断模式(断路器),3.仓壁模式


后背模式(备胎,当当前调用的方法不可用或超时时,立马调用后背方法)
如果要开启Hystrix要在主程序类上加上@EnableCircuitBreaker开启,并在方法上增加@HystrixCommand(fallbackMethod=“后背方法”)后背方法名一定要相同一致并且参数也要一致

使用Hystrix熔断首先需要导入相应的依赖

         
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix
        

        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix-dashboard
        

可以看到导入了两个依赖,这是一个熔断和一个熔断监控的依赖


直接在controller写就好代码示例

    @HystrixCommand(fallbackMethod = "en")
    @RequestMapping("bus/{id}")
    public User testFeign(@PathVariable("id")Integer id){
        User user = systemFeignClient.getUser1(id);
        return user;
    }

    public User en(Integer id){
        User user =User.builder().id(-1).userName("默认用户").height(150).build();
        return user;
    }

由此看到代码示例中参数与后背方法名相同,如若方法不可用或超时将自动调用后背方法


如何进行全局配置?在类上加注解@DefaultProperties(defaultFallback = “defaultBack”)
类名必须相同

 public String defaultBack(){
        return "请稍后重试";
    }
@HystrixCommand
    @RequestMapping("cha/{id}")
    public String xixi(@PathVariable("id") Integer id){
        if (id % 2 ==0){
            return "成功";
        }
        User en = systemFeignClient.getUser1(id);
        return en.getUserName();
    }

如果获取的id%2等于0的话就走成功,如果不等于0的话就走全局配置


management:
  endpoints:
    web:
      exposure:
        include: '*'

配置这个就能查到监控的所有,如果不配置只能查到health和info

访问豪猪页面

http://localhost:8082/hystrix

设置访问
http://localhost:8082/actuator/hystrix.stream 时间2000就好 标题随意

你可能感兴趣的:(Hystrix熔断)