Hystrix功能介绍

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-11-25 08:26 被阅读0次

    上一篇 <<<Gateway配置及流程分析
    下一篇 >>>Sentinel功能介绍


    1.Hystrix的原理

    服务熔断(默认值10)、服务降级和隔离机制

    2.核心代码

    • 依赖引入
    <!-- hystrix断路器 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
            </dependency>
    
    • 配置相关
    # 配置开启
    feign:
      hystrix:
        enabled: true
    # hystrix禁止服务超时,默认为1s就会走服务降级,导致业务逻辑正常走了,只是因为没及时返回导致走了服务降级的操作
    hystrix:  
     command: 
       default: 
          execution: 
           timeout: 
            enabled: false
    生产环境不要写false,最好是设置超时时间,默认为1s
    

    核心代码

    @SpringBootApplication
    @EnableEurekaClient
    @EnableFeignClients
    @EnableHystrix
    public class AppOrder {
        public static void main(String[] args) {
            SpringApplication.run(AppOrder.class, args);
        }
    }
    
    //服务降级demo
    @HystrixCommand(fallbackMethod = "orderToUserInfoFallback")
    @GetMapping("/orderToUserInfo")
    public ResponseBase orderToUserInfoHystrix() {
        System.out.println("orderToUserInfo:" + "当前线程池名称:" + Thread.currentThread().getName());
        return memberServiceFeigin.getUserInfo();
    }
    @RequestMapping("/orderToUserInfoFallback")
    public ResponseBase orderToUserInfoFallback() {
        return setResultError("系统错误!!!!");
    }
    

    3.Fallback方法独立模块

    使用@HystrixCommand会很复杂,尤其是把fallbackMethod写在每个具体的类里。
    可以把fallbackMethod写到独立的模块,继承Feign客户端,然后在feignClient里加上fallback对应的类即可。
    @FeignClient(name=””,fallbackMethod=A1.class)

    public A extends Interfaces{};
    
    public A1 extends A{
    @Override
    public method1(){
    //fallback具体内容
    }
    }
    

    4.Fallback与blockHandler的区别

    fallback是服务熔断或者业务逻辑出现异常执行的方法(1.6版本以上)
    blockHandler 限流出现错误执行的方法。


    推荐阅读:
    <<<Sentinel功能介绍
    <<<Sentinel与Hytrix区别
    <<<Sentinel的熔断降级策略
    <<<Sentinel的热点词限流
    <<<Sentinel的限流方式实例
    <<<Sentinel策略的持久化方式
    <<<Sentinel整合nacos实现策略持久化
    <<<Sentinel整合网关服务核心代码
    <<<Sentinel环境搭建

    相关文章

      网友评论

        本文标题:Hystrix功能介绍

        本文链接:https://www.haomeiwen.com/subject/kjxmtrtx.html