Hystrix熔断

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

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


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

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

         <!--服务熔断-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>

        <!--服务熔断监控监控多少次成功与失败-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>

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


直接在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就好 标题随意

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值