问题描述:
近期用Spring cloud 开发微服务架构时候,在服务与服务之间调用调试代码时候,出现链接超时。
错误信息:
Read timed out executing GET http://service-batch/batchmanagement/datatransfer/querybyplanid?planid=PL00000102。
发生原因:
用IDE开发Debug模式调试代码时候,在处理该服务与其他服务调用时候,由于debug模式调试代码花费一些时间,结果出现Fegin 连接超时问题。或者调用稍微时间长一点点的接口都会超时报错
解决办法:
在application.properice属性文件中添加超时和重试属性
#Fegin 连接超时
ribbon.ReadTimeout=60000
ribbon.ConnectTimeout=60000
ribbon.MaxAutoRetries=0
ribbon.MaxAutoRetriesNextServer=1
技术讲解:
微服务间调用其实走的是http请求,debug了一下默认的ReadTimeout时间为5s,ConnectTimeout时间为2s,
我使用的是Fegin进行微服务间调用,底层用的还是Ribbon。