学习博客:【SpringCloud】Hystrix服务降级

熔断在服务端,某个服务超时或者异常,引起熔断,出现问题提供备份方案(保险丝)

降级在客户端,考虑网站请求负载,暂时关闭某些接口,某个服务熔断或关闭后,服务不会被调用,此时客户端可以准备一个FallbackFactory,返回缺省值

项目结构
在这里插入图片描述

API
接口中开启注解

@FeignClient(value = "http://SPRINGCLOUD-PROVIDER-DEPT",fallbackFactory = DeptClientServiceFallbackFactory.class)

实现类

//降级
@Component
public class DeptClientServiceFallbackFactory implements FallbackFactory {
    
    
    @Override
    public DeptClientService create(Throwable cause) {
    
    
        return new DeptClientService() {
    
    
            @Override
            public Dept queryById(Long id) {
    
    
                return new Dept()
                        .setDeptno(id)
                        .setDname("id=>"+id+"无对应信息,降级处理,该服务已关闭")
                        .setDb_source("无数据");
            }

            @Override
            public List<Dept> queryAll() {
    
    
                return null;
            }

            @Override
            public boolean addDept(Dept dept) {
    
    
                return false;
            }
        };
    }
}

项目结构
在这里插入图片描述
application.yml中开启降级

#开启降级
feign:
  circuitbreaker:
    enabled: true

正常访问
在这里插入图片描述
有熔断机制且不关闭服务端
在这里插入图片描述
开启降级服务后,关闭服务端
在这里插入图片描述
在这里插入图片描述

接口被关闭,无法调用服务

猜你喜欢

转载自blog.csdn.net/Aurinko324/article/details/125661666