spring cloud(断路器——初学五)
2024-09-17 02:56:16
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 = "/add")
Integer add(@RequestParam(value = "a") Integer a, @RequestParam(value = "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(value = "a") Integer a, @RequestParam(value = "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 (正常访问回调方法)
最新文章
- 十分钟玩转 jQuery、实例大全
- 详解Paint的setShader(Shader shader)
- DELL R710服务器做RAID5磁盘阵列图文教程
- UISlide属性
- 存储过程Oracle学习(一)
- Halcon学习笔记之缺陷检测(二)
- IE6、火狐不支持a:visited
- Unity屏幕射线碰撞
- sublime 前端开发工具
- 配置php网页显示错误
- Problem A
- 联想G510F1F2..功能键和FN+功能键反过来
- java容器-Map
- 🍓 移动端调试工具之vconsole的使用~ 🍓
- 算法之Python实现 - 003 : 换钱的方法数
- 「TJOI2015」概率论 解题报告
- 容器网络——从CNI到Calico
- Introduction To Machine Learning Self-Evaluation Test
- Vue.js基础(二)
- Delphi 之 菜单组件(TMainMenu)