0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

feign調(diào)用常見問題避坑指南!

Android編程精選 ? 來源:Android編程精選 ? 2022-12-23 15:13 ? 次閱讀

摘要:主要是總結(jié)了一下這段時(shí)間在使用 feign 的過程中的遇到的一些坑點(diǎn)。

一、Get請求自動(dòng)轉(zhuǎn)化成POST的問題

1、client 請求參數(shù)沒有加上 @RequestParam 注解

問題代碼:

@GetMapping("/showName")
StringshowName(Stringname);

錯(cuò)誤提示:

[{"timestamp":"2022-12-14T0922.370+00:00","status":405,"error":"MethodNotAllowed","path":"/showName"}]

修改建議:

在對應(yīng)的請求參數(shù)上加上 @RequestParam 注解,代碼示例如下所示:

@GetMapping("/showName")
StringshowName(@RequestParam("name")Stringname);

2、client 請求參數(shù)中使用了 @RequestBody 注解

問題代碼:

@GetMapping("/showBody")
StringshowBody(@RequestBodyStringbody);

錯(cuò)誤提示:

[{"timestamp":"2022-12-14T1008.943+00:00","status":405,"error":"MethodNotAllowed","path":"/showBody"}]

原因:

okhttp 和 HttpURLConnection 不支持 @RequestBody + RequestMethod.GET,只有 httpclient 支持,默認(rèn)使用 HttpURLConnection。

修改建議:

1、最佳建議:要求提供方,更改為Post請求

2、使用 httpclient

引入 httpclient 包


io.github.openfeign
feign-httpclient

修改配置:

feign.httpclient.enabled=true

二、Feign Hystrix 熔斷、線程使用坑點(diǎn)

hystrx 官方配置解釋地址:

https://github.com/Netflix/Hystrix/wiki/Configuration

線程池隊(duì)列配置問題

常用配置:

#核心線程池大小,默認(rèn)值為:10
hystrix.threadpool.default.coreSize=10

#調(diào)用超時(shí)時(shí)間,默認(rèn)值為1000ms
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=15000

#最大線程池大小,這是在不開始拒絕的情況下可以支持的最大并發(fā)量。默認(rèn)值為10。
hystrix.threadpool.default.maximumSize=50

#隊(duì)列大小拒絕閾值,默認(rèn)值為5。即使maxQueueSize未達(dá)到也會(huì)發(fā)生拒絕。在maxQueueSize==-1時(shí)不生效。
hystrix.threadpool.default.queueSizeRejectionThreshold=100

#maximumSize配置是否生效,默認(rèn)值為false。maximumSize可以等于或高于coreSize。
#設(shè)置coreSize

錯(cuò)誤配置①:

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=1000

feign使用的是懶加載,第一次調(diào)用時(shí),會(huì)初始化各種bean,速度很慢,默認(rèn)1秒很容易超時(shí)。

錯(cuò)誤配置②:

hystrix.threadpool.default.coreSize=10
hystrix.threadpool.default.maxQueueSize=1000
hystrix.threadpool.default.queueSizeRejectionThreshold=20

因?yàn)?queueSizeRejectionThreshold 太小,實(shí)際上在并發(fā)達(dá)到 30 以上的時(shí)候,就會(huì)拒絕后面的請求了。

錯(cuò)誤配置③:

hystrix.threadpool.default.coreSize=10
hystrix.threadpool.default.maxQueueSize=20
hystrix.threadpool.default.queueSizeRejectionThreshold=1000

因?yàn)?maxQueueSize 太小,實(shí)際上在并發(fā)達(dá)到 30 以上的時(shí)候,就會(huì)拒絕后面的請求了。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4858

    瀏覽量

    69551
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    507

    瀏覽量

    19866

原文標(biāo)題:feign 調(diào)用常見問題避坑指南!

文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32常見問題有哪些?怎么解決這些問題?

    STM32常見問題有哪些?如何解決STM32單片機(jī)常見問題
    發(fā)表于 04-19 06:39

    gazebo仿真常見問題遇見的記錄

    大家好,我是一到周五就很開心的小魚?。今天舊話重提,說一說做機(jī)器人仿真的時(shí)候?遇到的一些問題,這里小魚基于之前寫過的文章,再總結(jié)一次。1.gazebo仿真常見問題以下的,是從小魚自己的悲慘經(jīng)歷
    發(fā)表于 09-15 06:42

    分享一些嵌入式系統(tǒng)編程中內(nèi)存操作相關(guān)的指南

    在嵌入式系統(tǒng)的編程中,內(nèi)存操作是我們常用到的,但往往也是易錯(cuò)的地方,怎么避免呢,今天給大家分享一些相關(guān)的指南。數(shù)據(jù)指針...
    發(fā)表于 12-17 07:18

    直放站常見問題及分析

    直放站常見問題及分析的內(nèi)容:1、問題的定位及判斷2、室外直放站常見的問題3、室內(nèi)直放站常見的問題
    發(fā)表于 08-01 08:26 ?63次下載
    直放站<b class='flag-5'>常見問題</b>及分析

    Keil編譯常見問題

    吳鑒鷹總結(jié)的Keil 編譯常見問題,吳鑒鷹總結(jié)的Keil 編譯常見問題
    發(fā)表于 07-22 15:31 ?10次下載

    灰塵網(wǎng)絡(luò)常見問題

    灰塵網(wǎng)絡(luò)常見問題
    發(fā)表于 04-28 15:08 ?8次下載
    灰塵網(wǎng)絡(luò)<b class='flag-5'>常見問題</b>

    C語言常見問題

    C語言常見問題
    發(fā)表于 03-21 14:57 ?0次下載

    PCB設(shè)計(jì)指南

    本文就重點(diǎn)講解PCB設(shè)計(jì)指南,99%的PCB工程師容易忽略的!點(diǎn)進(jìn)來 大家在PCB設(shè)計(jì)
    的頭像 發(fā)表于 03-20 18:20 ?1303次閱讀
    PCB設(shè)計(jì)<b class='flag-5'>避</b><b class='flag-5'>坑</b><b class='flag-5'>指南</b>

    簡化本地Feign調(diào)用的方法

    在平常的工作中,OpenFeign作為微服務(wù)間的調(diào)用組件使用的非常普遍,接口配合注解的調(diào)用方式突出一個(gè)簡便,讓我們能無需關(guān)注內(nèi)部細(xì)節(jié)就能實(shí)現(xiàn)服務(wù)間的接口調(diào)用。
    的頭像 發(fā)表于 06-20 10:01 ?942次閱讀
    簡化本地<b class='flag-5'>Feign</b><b class='flag-5'>調(diào)用</b>的方法

    OpenSSL安裝常見問題

    OpenSSL安裝常見問題
    的頭像 發(fā)表于 07-07 11:17 ?1003次閱讀
    OpenSSL安裝<b class='flag-5'>常見問題</b>

    Feign第一次調(diào)用為什么會(huì)很慢?

    首先要了解Feign是如何進(jìn)行遠(yuǎn)程調(diào)用的,這里面包括,注冊中心、負(fù)載均衡、FeignClient之間的關(guān)系,微服務(wù)通過不論是eureka、nacos也好注冊到服務(wù)端,Feign是靠Ribbon做負(fù)載
    的頭像 發(fā)表于 08-17 15:00 ?1663次閱讀
    <b class='flag-5'>Feign</b>第一次<b class='flag-5'>調(diào)用</b>為什么會(huì)很慢?

    PoE設(shè)備選購指南

    在工業(yè)通信領(lǐng)域,通過一根網(wǎng)線就能傳輸數(shù)據(jù)又能為設(shè)備供電的PoE(以太網(wǎng)供電)設(shè)備應(yīng)用十分常見,比如PoE交換機(jī)、PoE供電器、PoE延長器等。盡管如此,我們在選購這些PoE設(shè)備時(shí),也常常會(huì)遇到一些“”,給工作帶來很大的麻煩。
    的頭像 發(fā)表于 11-07 09:10 ?634次閱讀

    IoT產(chǎn)品|PoE設(shè)備選購指南,這些“雷”打死也別踩!

    ”,給工作帶來很大的麻煩。 指南一:選擇有專用控制芯片的標(biāo)準(zhǔn)PoE交換機(jī) 目前市場上除了有符合國際標(biāo)準(zhǔn)PoE交換機(jī)外,也充斥著很多非標(biāo)準(zhǔn)的PoE交換機(jī)。標(biāo)準(zhǔn)PoE交換機(jī),在供電
    的頭像 發(fā)表于 11-13 10:11 ?576次閱讀

    指南】電容耐壓降額裕量不合理導(dǎo)致電容頻繁被擊穿

    指南】電容耐壓降額裕量不合理導(dǎo)致電容頻繁被擊穿
    的頭像 發(fā)表于 11-23 09:04 ?2436次閱讀
    【<b class='flag-5'>避</b><b class='flag-5'>坑</b><b class='flag-5'>指南</b>】電容耐壓降額裕量不合理導(dǎo)致電容頻繁被擊穿

    PGA460常見問題(FAQ)和EVM故障排除指南

    電子發(fā)燒友網(wǎng)站提供《PGA460常見問題(FAQ)和EVM故障排除指南.pdf》資料免費(fèi)下載
    發(fā)表于 10-09 10:25 ?1次下載
    PGA460<b class='flag-5'>常見問題</b>(FAQ)和EVM故障排除<b class='flag-5'>指南</b>