feign 第一次调用超时_feign + hystrix 降级
feign 启用 hystrix
feign 默认没有启用 hystrix,添加配置,启用 hystrix
feign.hystrix.enabled=true
application.yml 添加配置
feign: hystrix: enabled: true
启用 hystrix 后,访问服务
http://localhost:3001/item-service/35
默认1秒会快速失败,没有降级方法时,会显示白板页
可以添加配置,暂时减小降级超时时间,以便后续对降级进行测试
......feign: hystrix: enabled: true hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 500
feign + hystrix 降级
feign 远程接口中指定降级类
远程调用失败, 会执行降级类中的代码
ItemFeignService
...@FeignClient(name="item-service", fallback = ItemFeignServiceFB.class)public interface ItemFeignService {...
UserFeignService
...@FeignClient(name="user-service", fallback = UserFeignServiceFB.class)public interface UserFeignService {...
OrderFeignService
...@FeignClient(name="order-service",fallback = OrderFeignServiceFB.class)public interface OrderFeignService {...
降级类
降级类需要实现远程接口
ItemFeignServiceFB
package cn.tedu.sp09.service;import java.util.List;import org.springframework.stereotype.Component;import cn.tedu.sp01.pojo.Item;import cn.tedu.web.util.JsonResult;@Componentpublic class ItemFeignServiceFB implements ItemFeignService { @Override public JsonResult> getItems(String orderId) { return JsonResult.err("无法获取订单商品列表"); } @Override public JsonResult decreaseNumber(List items) { return JsonResult.err("无法修改商品库存"); }}
UserFeignServiceFB
package cn.tedu.sp09.service;import org.springframework.stereotype.Component;import cn.tedu.sp01.pojo.User;import cn.tedu.web.util.JsonResult;@Componentpublic class UserFeignServiceFB implements UserFeignService { @Override public JsonResult getUser(Integer userId) { return JsonResult.err("无法获取用户信息"); } @Override public JsonResult addScore(Integer userId, Integer score) { return JsonResult.err("无法增加用户积分"); }}
OrderFeignServiceFB
package cn.tedu.sp09.service;import org.springframework.stereotype.Component;import cn.tedu.sp01.pojo.Order;import cn.tedu.web.util.JsonResult;@Componentpublic class OrderFeignServiceFB implements OrderFeignService { @Override public JsonResult getOrder(String orderId) { return JsonResult.err("无法获取商品订单"); } @Override public JsonResult addOrder() { return JsonResult.err("无法保存订单"); }}
启动服务,访问测试
http://localhost:3001/item-service/35
feign 第一次调用超时_feign + hystrix 降级相关推荐
- feign 第一次调用超时_Feign ,3步搞定 HTTP 请求
今天要给大家介绍的主角是Feign . Feign是一个受到Retrofit,JAXRS-2.0和WebSocket启发的Java到HTTP客户端绑定器. Feign的第一个目标是降低HTTP API ...
- feign 服务启动后加载 避免第一次调用超时 及第一次调用耗时长
版本:feign-core 9.5.0 spring-cloud-starter-openfein 1.4.6 第一次调用耗时的原因-懒加载:1.spring mvc servlet;2.ribb ...
- ribbon基于接口配置超时_feign的ribbon超时配置和hystrix的超时配置说明
先看下我的配置: ribbon: MaxAutoRetries: 1 #最大重试次数,当Eureka中可以找到服务,但是服务连不上时将会重试 MaxAutoRetriesNextServer: 1 # ...
- springcloud中fegin第一次跨模块调用超时
问题 springcloud架构的项目中,偶尔出现fegin第一次调用超时的问题,该怎么处理? 现象 项目是个后端接口服务,接口调用链路会涉及到多个模块间fegin的调用.现象是:有时候重启部署后或者 ...
- feign接口调用出现连接超时
确认代码无误后,调用出现 connect time out 问题. 因为feign已经集成robbon,hystrix,调用在规定时间内达不到就会报上述错误,并且这个规定时间会很短 解决办法: ...
- Hystrix面试 - 基于 timeout 机制为服务接口调用超时提供安全保护
Hystrix面试 - 基于 timeout 机制为服务接口调用超时提供安全保护 一般来说,在调用依赖服务的接口的时候,比较常见的一个问题就是超时.超时是在一个复杂的分布式系统中,导致系统不稳定,或者 ...
- 怎么用feign远程调用别人的接口_Feign远程接口调用
Feign远程接口调用 clouds234@163.com 2018-8-6 以下都是使用在springboot2.0.4内置启动插件基础上 Feign-only 不注册到eureka 单独使用fei ...
- Feign的调用报错时,降级处理方式,fallBackFactory
Feign的调用报错时,降级处理fallBackFactory 项目结构: 代码: remoteCdsService package com.gsafety.framework.api;import ...
- SpringCloud服务消费者第一次调用出现超时问题的解决方案
SpringCloud服务消费者第一次调用出现超时问题的解决方案 参考文章: (1)SpringCloud服务消费者第一次调用出现超时问题的解决方案 (2)https://www.cnblogs.co ...
最新文章
- 验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)
- linux之systemctl设置自定义服务
- 关联规则挖掘算法_基于Apriori关联规则的协同过滤算法
- 锁表次数一般多大_「健身增肌」有些肌肉喜欢“大重量”,有些肌肉需要“高次数”...
- Python 数据可视化利器 plus(plotly )
- java 面试 —— java 基础
- Matlab之字符串的查找(findstr)与替换(strrep)
- java语言程序设计 第八版 基础篇_Java语言程序设计基础篇(第八版)编程8.7答案
- 用C语言编译病毒,来来来,教你一个用C语言写个小病毒
- 雨棚板弹性法计算简图_钢结构雨篷图纸计算书
- app漏洞扫描原理_绿盟--漏洞扫描系统NSFOCUS RSAS-S-v5.0
- iOS文本展开收起,使用YYKit展开全文和收起全文,支持图文混排
- 学术会议html模板,学术会议的常用模板
- 深度森林论文阅读笔记
- java如何解除文件锁定状态_Eclipse操作SVN时中断锁定,文件的解锁方法
- 一文搞懂蓝绿部署和金丝雀发布
- 利用Python运行Ansys Apdl
- Bugku Misc 我永远喜欢穹妹
- 彻底删除oracle数据,彻底删除Oracle数据库的方法
- movie计算机英语作文,关于电影的英语作文movie