基于springboot服務(wù)間Feign調(diào)用超時(shí)的解決方案
解決springboot服務(wù)間Feign調(diào)用超時(shí)問題概述
1、起因
在完成項(xiàng)目功能需求的開發(fā),經(jīng)過自己測試以及通過測試組測試通過后,昨晚正式部署到線上環(huán)境進(jìn)行正式運(yùn)行前的最后一次的測試。但是在測試中,由A服務(wù)調(diào)用B服務(wù)接口時(shí),***通過Feign調(diào)用(其實(shí)就是http請求,當(dāng)A服務(wù)調(diào)用B服務(wù)時(shí),如果不配置超時(shí)時(shí)間,那么A發(fā)出請求后,B應(yīng)該立即響應(yīng),否則A服務(wù)會(huì)認(rèn)為B已經(jīng)斷開連接)出現(xiàn)***連接超時(shí)的錯(cuò)誤,錯(cuò)誤信息:Read timed out…
2、原因
用idea開發(fā)debug模式調(diào)試代碼時(shí),在處理服務(wù)間調(diào)用時(shí),由于debug模式調(diào)試代碼花費(fèi)一些時(shí)間,結(jié)果出現(xiàn)Fegin連接超時(shí)問題
3、解決方案
在springboot項(xiàng)目application.yml配置文件中添加
#解決跨服務(wù)問題

4、使用Feign的好處
首先我們的項(xiàng)目使用了SpringCloud技術(shù),而Feign可以和SpringCloud技術(shù)無縫整合。并且,你一旦使用了Feign作為http客戶端,調(diào)用遠(yuǎn)程的http接口就會(huì)變得像調(diào)用本地方法一樣簡單。
5、項(xiàng)目如何使用Feign
(1) 首先你得引入Feign依賴的jar包:
gradle依賴:
compile "org.springframework.cloud:spring-cloud-netflix-core:1.3.2.RELEASE"
Maven依賴:

(2) 在properties配置文件中配置要調(diào)用的接口的URL路徑(域名部分)
url.xapi=http://xapi.xuebusi.com
(3) 聲明要調(diào)用的遠(yuǎn)程接口

6、說明:
(1) @FeignClient 是Feign提供的注解,用于通知Feign組件對該接口進(jìn)行代理(不需要編寫接口實(shí)現(xiàn)),使用者可直接通過@Autowired注入。
(2) @RequestMapping 是Spring提供的注解,這里可以直接使用以前使用SpringMVC時(shí)用過的各種注解,唯一不同的是,這里只是把注解用在了接口上。
(3) 如果將Feign與Eureka組合使用,@FeignClient(name = “xapi”)意為通知Feign在調(diào)用該接口方法時(shí)要向Eureka中查詢名為 xapi 的服務(wù),從而得到服務(wù)URL,
(4) 但是遠(yuǎn)程的http接口并不是我們自己的,我們無法把它注冊到Eureka中,所以這里我們就使用 url = “${url.xapi}” 把要調(diào)用的接口的url域名部分直接寫死到配置文件中。
feign超時(shí)問題解決必殺技
1、配置中添加:
feign:
hystrix:
enabled: false
2、添加:
hystrix:
command:
default:
execution:
timeout:
enabled: false
3、添加:
ribbon: ReadTimeout: 10000 ConnectTimeout: 10000
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA導(dǎo)入eclipse項(xiàng)目并且部署到tomcat的步驟詳解
這篇文章主要給大家介紹了關(guān)于IDEA導(dǎo)入eclipse項(xiàng)目并且部署到tomcat的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
BeanUtils.copyProperties()拷貝id屬性失敗的原因及解決
這篇文章主要介紹了BeanUtils.copyProperties()拷貝id屬性失敗的原因及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
Spring中@RequestParam、@RequestBody和@PathVariable的用法詳解
這篇文章主要介紹了Spring中@RequestParam、@RequestBody和@PathVariable的用法詳解,后端使用集合來接受參數(shù),靈活性較好,如果url中沒有對參數(shù)賦key值,后端在接收時(shí),會(huì)根據(jù)參數(shù)值的類型附,賦一個(gè)初始key,需要的朋友可以參考下2024-01-01
SpringBoot集成阿里巴巴Druid監(jiān)控的示例代碼
這篇文章主要介紹了SpringBoot集成阿里巴巴Druid監(jiān)控的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04

