博客
关于我
Feign连接超时异常解决:Read timed out executing GET http://XXX
阅读量:668 次
发布时间:2019-03-16

本文共 1102 字,大约阅读时间需要 3 分钟。

今天,我在对Hystrix服务熔断验证时遇到了一个问题。服务提供方的代码如下:

@HystrixCommand(fallbackMethod = "getEmpBackup")@RequestMapping("/provider/circuit/breaker/get/emp")public ResultEntity
getEmp(@RequestParam("signal") String signal) throws InterruptedException { if ("bang".equals(signal)) { throw new RuntimeException("蹦!瞎卡拉卡!"); } if("sleep".equals(signal)) { Thread.sleep(5000); } return ResultEntity.successWithData(new Employee(666, "sam666", 666.66)); }

同时,该服务还有一个备用方法:

getEmpBackup(@RequestParam("signal") String signal) {    return ResultEntity.failed("circuitbreakworkded,withsignal=" + signal+", the Exception is: ");}

在测试过程中,我发现当调用服务接口时,有时会返回超时错误。错误信息显示:

Read timed out executing GET http://atguigu-provider/provider/circuit/breaker/get/emp?signal=sleep

这提示我,问题的根源在于服务消费方的Feign配置。通过调整Feign的超时设置,可以更好地处理服务不可用情况。具体做法如下:

feign:  client:    config:      default:        connectTimeout: 10000        readTimeout: 600000

经过上述调整,并重启相关服务后,服务熔断功能正常工作。

总的来说,问题是由于Feign的默认超时时间过短,导致当服务提供端长时间未响应时,Feign抛出了超时错误。通过调整连接和读取超时参数,可以更好地捕捉和处理服务不可用的情况,从而实现服务熔断的预期效果。

转载地址:http://flmqz.baihongyu.com/

你可能感兴趣的文章
49数据通路的功能和基本结构
查看>>
Java面试宝典(2020版)
查看>>
4大继承模式
查看>>
06二维数组
查看>>
Springboot 初學習
查看>>
如何用华为位置服务实现搜索位置返回父子节点信息
查看>>
2020年云南省专升本 - 「计算机」专业各院校招生计划
查看>>
同一个实例注册到两个eureka上面
查看>>
【数据库】实验二~六
查看>>
【Qt】布局
查看>>
uni-app的请求数据的封装
查看>>
C++容器笔记
查看>>
Android 四大组件、五大存储、六大布局总结
查看>>
【VRP问题】基于模拟退火改进遗传算法求解带时间窗含充电站的车辆路径规划问题EVRPTW
查看>>
【图像识别】基于模板匹配实现手写数字识别
查看>>
【语音去噪】最小二乘法(LMS)自适应滤波器matlab源码
查看>>
【边缘检测】基于CNN的灰度图像边缘提取matlab源码
查看>>
打工族有房有车,原来是这么实现的
查看>>
算法 顺序查找/折半查找/冒泡排序/选择排序(待改)
查看>>
华为1+X网络系统建设与运维(中级)——4.1 VLAN技术原理
查看>>