《深入理解Spring Cloud与微服务构建》学习笔记(十三)~在RestTemplat和Ribbon上使用熔断器

继续在上一篇项目上扩展,在study_client module的pom.xml 添加熔断器依赖:


        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>

在启动类上添加 @EnableHystrix 注解,开启熔断器功能。

修改RibbonService代码,在hi方法上添加@HystrixCommand 熔断注解,hi方法就有了熔断功能,其中fallbackeMethod为回退逻辑的处理方法,在熔断器打开的状态下,会执行fallback逻辑。这里不建议处理复杂的逻辑,也不建议远程调度其他服务,如果需要也得在远程服务上加熔断功能:

@Service
public class RibboService {

    @Autowired
    RestTemplate restTemplate;
    
    @HystrixCommand(fallbackMethod = "hiError")
    public String hi(){
        String url ="http://eureka-client/hello";
        return restTemplate.getForObject(url,String.class);
    }

    public String hiError(){
        return "sorry 发生熔断错误!";
    }
}

依次启动eureka_service的peer1 实例 ,启动eureka_client的两个实例,启动study_client。

浏览器访问:http://localhost:8763/hi   ,可以看到能直接访问到。

关闭eureka_client的一个实例,会看到刷新之后,会一会访问另一个实例,继续关闭另一个实例,此时界面显示熔断错误,也就是我们刚才代码里输入的字符串:

代码示例:https://download.csdn.net/download/ssdate/11011586

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值