Feign远程调用超时问题
1.问题概述

- 上图的场景,每次重启项目后openFeign都会报一个超时异常,异常信息如下

2.为什么会产生这个异常?
- 当项目刚启动时,数据库连接池的中的连接并不会创建;第一次请求的时候才会初始化各种池,连接准备等工作;所以导致了第一次初始化建立连接时间很长.feign觉得这个远程调用很久没有返回所以就超时了.
feign默认超时等待是1s.如果1s没有返回数据,会重试几次;重试几次还没返回数据,就报错读取超时异常
思考一个问题:为啥Feign要设置超时时间呢?
- 拿上图来说如果feign不设置超时时间,那么一旦商品微服务一致没有给订单微服务返回数据,订单微服务就会一直占用着一个线程;并且我们的系统远程调用有很多,如果是大量来了,很容易导致整个线程资源被占用完了,直接导致整个系统雪崩
3.解决办法
方式1:在远程调用的接口参数上指定Request.Options options:超时时间


方式2:在调用方配置文件设置超时时间
feign:
client:
config:
qiuqiu: # 微服务客户端名
connectTimeout: 5000 # 连接超时时间(建立连接的时间)
readTimeout: 5000 # 读取超时时间(读取数据的时间)
方式3:方式2是可以解决的,但是怎么设置每个服务都要配置很麻烦,所以全局配置它来了!!!
- 因为我项目中用的是nacos配置中心,所以我把这段配置加入到nacos配置中心进行管理
feign:
client:
config:
default: # 指定默认的配置,这样其他所有调用此服务的feign客户端配置都是这个配置
connectTimeout: 5000 # 连接超时时间(建立连接的时间)
readTimeout: 5000 # 读取超时时间(读取数据的时间)

- 所以后面的服务我们不配置,则使用的是上面默认的,如果想单独配置,则直接在配置文件中配置即可
Feign远程调用超时问题的更多相关文章
- SpringCloud(二) - Eureka注册中心,feign远程调用,hystrix降级和熔断
1.项目模块介绍 2. 父项目 主要依赖 spring-cloud 的 版本控制 <properties> <!-- springCloud 版本 --> <scd.ve ...
- Feign远程调用 (介绍与使用)
Feign远程调用 Feign是代替RestTemplate进行远程调用的组件,避免了RestTemplate手写复杂的url容易出错的问题,并提高代码的可读性 使用Feign步骤 1)引入依赖 哪个 ...
- Feign远程调用
有关微服务中,服务与服务如何通信,我已经给大家介绍了Ribbon远程调用的相关知识,不知道大家有没有发现Ribbon的问题呢? Ribbon的问题 在Ribbon中,如果我们想要发起一个调用,是这样的 ...
- springcloud系列五 feign远程调用服务
一:Feign简介 Feign 是一种声明式.模板化的 HTTP 客户端,在 Spring Cloud 中使用 Feign,可以做到使用 HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完 ...
- 【SpringCloud】(二)Eureka注册中心和Feign远程调用
1 SpringCloud 核心 SpringCloud基于HTTP协议,这是和Dubbo最本质的区别,Dubbo的核心是RPC(远程方法调用) Eureka:注册中心 Ribbon:客户端负载均衡 ...
- feign远程调用出错
如果你传递的参数,比较复杂时,默认会采用POST的请求方式. 传递单个参数时,推荐使用@PathVariable,如果传递的单个参数比较多,这里也可以采用@RequestParam,Feign接口中不 ...
- feign远程调用接口报空指针
今天对feign接口进行转移的时候再次启动一直报空指针,找了好久试了好多次才发现是没有对feign接口加注解 请一定要记得加自动注入的注解啊啊啊啊啊啊!!!!!!!
- Feign远程调用源码阅读
- spring cloud eureka + feign,api远程调用
网上教程不少,有些就是复制粘贴,不结合实际生产. eureka不再阐述. 一般正常开发会有多个工程,且多个module. 我的习惯是: eureka server.权限.config.gateway ...
- SpringCloud使用Nacos服务发现实现远程调用
本文使用SpringCloud结合Nacos服务发现,Feign远程调用做一个简单的Demo. 1 Nacos 关于Nacos之前写了两篇文章关于SpringBoot对它的使用,感兴趣可以查看一下. ...
随机推荐
- AgileConfig-1.7.0 发布,支持 SSO 🎉🎉🎉
AgileConfig 已经好久好久没有更新过比较大的功能了.一是 AgileConfig 本身的定位就是比较轻量,不想集成太多的功能.二是比较忙(懒).但是本次升级给大家带来了一个比较有用的功能 S ...
- 《SQL与数据库基础》19. 日志
目录 日志 错误日志 二进制日志 日志格式 日志查看 日志删除 查询日志 慢查询日志 本文以 MySQL 为例 日志 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysql 启动 ...
- Redis沙盒逃逸(CVE-2022-0543)漏洞复现
0x01 概述 Redis 是著名的开源 Key-Value 数据库,其具备在沙箱中执行 Lua 脚本的能力.Debian 以及 Ubuntu 发行版的源在打包 Redis 时,在 Lua 沙箱中遗留 ...
- 在线问诊 Python、FastAPI、Neo4j — 创建 检查节点
目录 症状数据 创建节点 根据不同的症状,会建议做些相对应的检验.检查 症状数据 examine_data.csv 建议值用""引起来.避免中间有,号造成误识别 检查 " ...
- Python爬虫——爬虫时如何知道是否代理ip伪装成功?
在进行爬虫时,我们可能需要使用代理IP来伪装自己的身份,以避免被网站封禁.如何判断代理IP是否伪装成功呢?本篇文章将围绕这个问题展开讲解,同时提供Python代码示例. 1. 确认代理IP地址 首先, ...
- 西门子Teamcenter 许可分析
西门子Teamcenter 许可 绑定了主机名称,mac地址 另外,Teamcenter可以支持多个许可服务 所以.......................找个正式许可复制就可以 end succ ...
- Java自学网站--十几个网站的分析与评测
简介 很多想学Java的人不知道怎样选教程,本文对Java自学网站进行评测. 本文不带主观倾向,只客观分析各个网站的区别. 第1类:大型培训机构(黑马等) 典型机构 黑马.尚硅谷.动力节点.白马.千 ...
- C++ STL快速入门方法
在数月之前的机试中第一次体验到STL的威力,因为自己本来一直在用C语言做开发,很多数据结构都是自己造的,比如链表.队列等,第一次接触C++ STL后发现这些数据结构都已经给我提供好了,我直接拿去调用就 ...
- MySQL PXC集群新增一个高版本节点
已有的一个 MySQL PXC 集群环境,因为种种原因仅剩一个节点 node1,需要新增一个集群节点 node2. node1 版本:donor version (8.0.21) node2 版本:l ...
- 解密Prompt系列17. LLM对齐方案再升级 WizardLM & BackTranslation & SELF-ALIGN
话接上文的指令微调的样本优化方案,上一章是通过多样性筛选和质量过滤,对样本量进行缩减,主打经济实惠.这一章是通过扩写,改写,以及回译等半监督样本挖掘方案对种子样本进行扩充,提高种子指令样本的多样性和复 ...