微服务熔断配置

微服务架构搭建熔断有三种方式。
第一种:
1、引入pom.xml依赖:



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

2、在启动类上加上注解:@EnableHystrix
3、声明接口:

@HystrixCommand(fallbackMethod = "selectByIdError")
@RequestMapping("/getuser")
public ResponseResult selectById(int id) {
  return userService.selectById(id);
}

public ResponseResult selectByIdError(int id){
    return new ResponseResult(10000,"内部服务出现异常",null);
}

第二种
1、引入熔断依赖
2、Feign自带熔断,需要手动打开

feign:
  hystrix:
    enabled: true

3、定义Fallback类实现feign接口

@Component
@Slf4j
public class OrderClientFallback implements UserService{
    @Override
    public void updatePoint(int price, int id) {
        log.info("======进入熔断处理======");
        log.info("调用用户服务的更新积分API失败");
    }

    @Override
    public ResponseResult selectById(int id) {
        return null;
    }
}

第三种
1、引入熔断依赖
2、Feign自带熔断,需要手动打开
3、定义一个熔断工厂类实现FallbackFactory接口,并定义好需要熔断处理的Feign接口泛型。

@Component
@Slf4j
public class OrderClientFallbackFactory implements FallbackFactory {
    @Override
    public UserService create(Throwable cause) {
        //打印熔断原因
        cause.printStackTrace();
        //返回一个工厂类型对象
        return new UserService(){
            @Override
            public void updatePoint(int price, int id) {
                log.info("======进入熔断处理======");
                log.info("调用用户服务的更新积分API失败");
            }

            @Override
            public ResponseResult selectById(int id) {
                return null;
            }
        };
    }
}

你可能感兴趣的:(微服务熔断配置)