5.1.3 请求测试
文章插图
5.2 使用 feign 远程调用5.2.1 主要依赖
<!--eureka 客户端依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><!--feign远程调用依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId><version>1.3.5.RELEASE</version></dependency>
5.2.2 配置信息# 端口server:port: 8098spring:application:name: edocmall-web# 服务名# eureka 注册中心的配置eureka:client:service-url:defaultZone: http://127.0.0.1:8096/eureka# 关闭自我保护机制,保证不可用的服务及时剔除server:enable-self-preservation: false# 开启客户端服务降级,默认是关闭的恶,需要打开feign:hystrix:enabled: true
5.2.3 代码介绍文章插图
5.2.3.1 业务层接口
//指定服务名@FeignClient(value = "https://www.huyubaike.com/biancheng/edocmall-server")public interface WebEntryService {//基于feign 远程调用edoc-server服务端提供的查询文档详情接口@GetMapping("/entry") //必须跟远程请求一直EdocEntryVO invokeEntryServiceUserFeign(@RequestParam("id") Integer id); //必须写 @RequestParam("id")// 注意 一点更要写 @RequestParam("id") 里面的参数必须写}
5.2.3.1 控制层之直接调用接口@RestControllerpublic class WebEntryController {@Autowiredprivate WebEntryService webEntryService;// 根据文档编号,获取文档详情@GetMapping("/entryById")public RequestResult<EdocEntryVO> entryDetail(Integer id){log.info("------ 根据文档编号:{},获取文档详情 ------",id);//基于feign 远程调用服务端接口,获取文档详情EdocEntryVO edocEntryVO = webEntryService.invokeEntryServiceUserFeign(id);return ResultBuildUtil.success(edocEntryVO);}}
5.2.4 主启动类上的注解@EnableEurekaClient// 开启 eureka 服务注册,将此服务注册到 eureka中@EnableFeignClients//开启 feign 远程调用服务
5.2.5 请求测试eureka 注册中心:文章插图
feign远程调用:
文章插图
6、Feign的服务降级与熔断6.1 服务降级(服务消费端)6.1.1 依赖由于feign中有hystrix的依赖,所以不用单独添加;
文章插图
6.1.2 接口指定服务降级后的实现类
@FeignClient(value = "https://www.huyubaike.com/biancheng/edocmall-server",fallback = WebEntryServiceImpl.class) //fallback 指定调用失败后 降级调用的数据public interface WebEntryService {......}
6.1.3 实现类,具体降级服务操作@Servicepublic class WebEntryServiceImpl implements WebEntryService {@Overridepublic EdocEntryVO invokeEntryServiceUserFeign(Integer id) {//此方法,就是regn远程调用,触发服务剪辑的默认实现,正常请求不会调用//只用远程 feign调用失败,才会调用EdocEntryVO edocEntryVO = new EdocEntryVO();edocEntryVO.setId(999);edocEntryVO.setCid(0);edocEntryVO.setTitle("触发熔断服务降级");edocEntryVO.setSummary("当feign远程调用接口失败,默的默认实现");edocEntryVO.setUploadUser("feign-hystrix");edocEntryVO.setCreateDate(new Date());return edocEntryVO;}
6.1.4 测试6.1.4.1 不添加服务降级时文章插图
6.1.4.2 添加服务降级后
文章插图
6.2 服务熔断(服务提供端)6.2.1 依赖
经验总结扩展阅读
- 2022年腊月初二是阳历几月几号
- 2022年腊月初二日子吉利吗
- 92猴男和96鼠女哪年结婚最好
- 2023年属鼠逢兔年运势如何
- 属鼠2023年适合做什么生意
- 这一拳二十年的功夫是什么电影?
- 焊工证个人信息查询入口 查询入口
- 2023年2月2日行船好不好 2023年农历正月十二行船吉日
- 2023年2月2日是买牛吉日吗 2023年农历正月十二宜买牛吗
- 2023年农历正月十二宜结婚吗 2023年农历正月十二结婚吉日