open feign的超時配置及源碼跟蹤

content:[2021-02-26 18:43:59.939][http-nio-8080-exec-11][ERROR][c.l.c.c.r.RestCartServiceImpl:50] [reqId:7C0AB48A63C843C99CE5BC6A4ED85244] <getMyCartDetail> 操作異常: feign.RetryableException: Read timed out executing POST http://cic-product-service/cic-product/getProductListByIds at feign.FeignException.errorExecuting(FeignException.java:249) at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:129) at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:89) at feign.ReflectiveFeignFeignInvocationHandler.invoke(ReflectiveFeign.java:100) at com.sun.proxy.Proxy162.getProductListByIds(Unknown Source)

問題:在application.yaml中配置的feign的超時一直不生效四濒,在網(wǎng)上也找不到相應(yīng)的合理解決方案摔桦,通常的答案是對feign依賴的底層ribbon設(shè)置超時來解決巨税,但這個不是官方推薦的方式吟温,所以我就產(chǎn)生了跟蹤源碼的興趣父能。

解決方案:首先我是通過對@FeignClient注解源碼進行了斷點跟蹤饥伊,看下在服務(wù)啟動時犯祠,spring boot是如何加載OpenFeign的超時配置的,最后跟蹤到


image.png

FeignClientFactoryBean的configureUsingProperties方法讀取了feign的配置

feign:
  okhttp:
    enabled: true
  httpclient:
    #關(guān)閉默認的httpclient
    enabled: false
    #整個連接池最大連接數(shù)
    max-connections: 200
    #每個路由的最大連接窖铡,默認50
    max-connections-per-route: 50
  client:
    config:
      default: #使用默認的feignclient時疗锐,超時可以生效
        connectTimeout: 111000
        readTimeout: 111000
image.png

跟蹤到這兒坊谁,就可以知道在我們對@FeignClient不進行重寫或者不額外指定configuration的配置時,他是默認加載default配置滑臊,而這個default配置默認超時是2秒


image.png

要想更改這個默認超時時間需要按照官方推薦的格式口芍,才能生效,如下:

feign:
   client:
      config:
        default: #這里就是指的所有被加載的默認FeignClient實現(xiàn)的服務(wù)配置都生效
            connectTimeout: 111000
            readTimeout: 111000
          

按照配置設(shè)置后雇卷,又對該服務(wù)配置做了驗證和壓測鬓椭,在4核8g的mac本上,查詢購物車服務(wù)支持150個并發(fā)关划,異常率0%小染,比之前的70%異常率,大大降低祭玉,至此完美解決線上問題氧映。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末春畔,一起剝皮案震驚了整個濱河市脱货,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌律姨,老刑警劉巖振峻,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異择份,居然都是意外死亡扣孟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門荣赶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凤价,“玉大人,你說我怎么就攤上這事拔创±担” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵剩燥,是天一觀的道長慢逾。 經(jīng)常有香客問我,道長灭红,這世上最難降的妖魔是什么侣滩? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮变擒,結(jié)果婚禮上君珠,老公的妹妹穿的比我還像新娘。我一直安慰自己娇斑,他們只是感情好策添,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布澈段。 她就那樣靜靜地躺著,像睡著了一般舰攒。 火紅的嫁衣襯著肌膚如雪败富。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天摩窃,我揣著相機與錄音兽叮,去河邊找鬼。 笑死猾愿,一個胖子當著我的面吹牛鹦聪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蒂秘,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼泽本,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了姻僧?” 一聲冷哼從身側(cè)響起规丽,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撇贺,沒想到半個月后赌莺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡松嘶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年艘狭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翠订。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡巢音,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出尽超,到底是詐尸還是另有隱情官撼,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布橙弱,位于F島的核電站歧寺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏棘脐。R本人自食惡果不足惜斜筐,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛀缝。 院中可真熱鬧顷链,春花似錦、人聲如沸屈梁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至煞抬,卻和暖如春霜大,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背革答。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工战坤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人残拐。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓途茫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親溪食。 傳聞我的和親對象是個殘疾皇子囊卜,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354