首页 > 代码库 > spring cloud(断路器——初学五)
spring cloud(断路器——初学五)
Feign使用Hystrix
因为feign已经依赖了hystrix,所以可以直接使用,无需添加再次添加依赖。
1、使用@FeignClient
注解中的fallback属性指定回调类
package com.daqsoft; import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; /** * @Description Created by liaoxx on 2017-6-12. */ @FeignClient(value = "compute-service", fallback = ComputeClientHystrix.class) public interface ComputerClient { @RequestMapping(method = RequestMethod.GET, value = "http://www.mamicode.com/add") Integer add(@RequestParam(value = "a") Integer a, @RequestParam(value = "http://www.mamicode.com/b") Integer b); }
2、创建回调类ComputeClientHystrix
,实现@FeignClient
的接口,此时实现的方法就是对应@FeignClient
接口中映射的fallback函数
package com.daqsoft; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestParam; /** * @Description Created by liaoxx on 2017-6-13. */ @Component public class ComputeClientHystrix implements ComputerClient { @Override public Integer add(@RequestParam(vhttp://www.mamicode.com/alue = "a") Integer a, @RequestParam(value = "http://www.mamicode.com/b") Integer b) { return -1; } }
3、web调用
package com.daqsoft; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; /** * @Description Created by liaoxx on 2017-6-12. */ @RestController public class CustomController { @Autowired private ComputerClient computerClient; @RequestMapping(value = "/add", method = RequestMethod.GET) public Integer add(){ return computerClient.add(10,20); } }
4、启动服务,访问http://localhost:3333/add
报错,无法进入回调
5、修改配置文件,添加属性
spring.application.name=ribbon-consumer server.port=3333 #服务注册中心地址 eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
#开启hystrix支持 feign.hystrix.enabled=true
6、再次启动服务,访问http://localhost:3333/add (正常访问回调方法)
spring cloud(断路器——初学五)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。