栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Feign由于调用服务出现超时导致的问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Feign由于调用服务出现超时导致的问题

文章目录

1.起因2.排查

1.Eureka问题2.项目服务的问题 3.解决问题

1.起因

     通过FeignClient指定服务名称,在从eureka获取一个服务的实例ip和端口,来调用某个接口获取数据出现,超时的情况!
在调用spu/page接口出现超时的情况

feign.RetryableException: Read timed out executing GET http://item-service/spu/page?page=1&rows=100


设置Feign的配置接口

@FeignClient("item-service")//调用item-service服务


GoodsApi:里面定义了公共的接口,这样一来那些服务需要使用只要继承该接口就可以实现,里面配置的调用方法,这样一来以后需要新增加某个接口我只要在GoodsApi中定义就可以,子类就会继承父类的方法!

2.排查 1.Eureka问题

一开始为以为是eureka服务没有被启动于是我就访问了eureka服务界面,可以看出服务是有启动的

并且我也在程序出现错误日志里面查看到了从eureka中获取到的服务地址

2.项目服务的问题

在想有没有可能是因为item-service服务的程序出现错误导致的超时,于是为就在服务调用的接口打上断点,可以看出请求已经到查询商品的服务接口了,也可以正常查询到数据,这个时候我就在想,有没有可能是因为为服务的接口查询的数据比较久(因为数据库是在外网不在本地可能网络原因导致查询慢)从而导致Feign以为服务超时了

并且我还通过浏览器访问,服务的ip:端口,查询了下数据页可以正常显示,就是慢了点

3.解决问题

如果是超时导致的那么我就只要设置下feign的超时时间就可以解决了,对配置文件(application.yml)中添加以下配置

feign:
  client:
    config:
      default:
        connectTimeout: 10000 #单位毫秒
        readTimeout: 10000 #单位毫秒

接着为在运行测试用例,可以看出数据已经被获取到了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号