springcloud熔断使用

发布时间:2024-11-21 15:01

说明:这里只说明熔断使用,不对作用进行解释介绍

准备:需要A服务 B服务都注册到注册中心,A服务需要调用B服务,那么熔断就是在B服务中。我这边A服务调用B服务是用的openfeign。

A服务内容【一些注册中心配置就不整了】:

pom文件:我这里面跟熔断相关的配置没有

yml文件:我这里面跟熔断相关的配置没有

控制层:ATestController

@Autowired
private ATestService atestService;

@GetMapping(\"forHystrix\")
public String forHystrix(@RequestParam(\"a\") int a){
    return atestService.forHystrix(a);
}

接口层:

@FeignClient(name = \"B服务名称\")
public interface ATestService {

    @GetMapping(\"forHystrix\")
    String forHystrix(@RequestParam(\"a\") int a);
}

接口实现层【这个是做降级的,要不要都行】:

@Service
public class ATestServiceImpl implements ATestService {

    public String forHystrix(int a){
        return \"我是降级-forHystrix\";
    }
}

B服务内容:

pom文件:



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

yml文件:

hystrix:
  metrics:
    enabled: true

启动类:在启动类上加上 @EnableHystrix//开启熔断

控制层:BTestController

@Autowired 
private BTestService btestService;
@GetMapping(\"forHystrix\")
public String forHystrix(@RequestParam(\"a\") int a){
    a = btestService.forHystrix(a);
    return \"hello forHystrix: a = \"+ a;
}

接口层:

public interface BTestService {
    int forHystrix(int a);
}

接口实现类:

@Service
public class BTestServiceImpl implements BTestService {

    @HystrixCommand(fallbackMethod = \"forHystrixError\",commandProperties = {
            @HystrixProperty(name = \"circuitBreaker.enabled\",value = \"true\"),//是否开启路由
            @HystrixProperty(name = \"circuitBreaker.requestVolumeThreshold\",value = \"10\"),//请求次数
            @HystrixProperty(name = \"circuitBreaker.sleepWindowInMilliseconds\",value = \"10000\"),//时间窗口
            @HystrixProperty(name = \"circuitBreaker.errorThresholdPercentage\",value = \"60\")//请求失败率
    })//上面的配置意思是,开启路由,每请求10次该接口,有6次请求失败,那么Hystrix会开启服务熔断
    public int forHystrix(int a) {
        System.out.println(a);
        if(a == 1){
            int b = 1/0;
        }
        return a;
    }

    public int forHystrixError(int a){
        return -1;
    }
    
}

随便记录一下。。。。。。。。。。。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号