0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

feign调用常见问题避坑指南!

Android编程精选 来源:Android编程精选 2022-12-23 15:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

摘要:主要是总结了一下这段时间在使用 feign 的过程中的遇到的一些坑点。

一、Get请求自动转化成POST的问题

1、client 请求参数没有加上 @RequestParam 注解

问题代码:

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

错误提示:

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

修改建议:

在对应的请求参数上加上 @RequestParam 注解,代码示例如下所示:

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

2、client 请求参数中使用了 @RequestBody 注解

问题代码:

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

错误提示:

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

原因:

okhttp 和 HttpURLConnection 不支持 @RequestBody + RequestMethod.GET,只有 httpclient 支持,默认使用 HttpURLConnection。

修改建议:

1、最佳建议:要求提供方,更改为Post请求

2、使用 httpclient

引入 httpclient 包


io.github.openfeign
feign-httpclient

修改配置:

feign.httpclient.enabled=true

二、Feign Hystrix 熔断、线程使用坑点

hystrx 官方配置解释地址:

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

线程池队列配置问题

常用配置:

#核心线程池大小,默认值为:10
hystrix.threadpool.default.coreSize=10

#调用超时时间,默认值为1000ms
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=15000

#最大线程池大小,这是在不开始拒绝的情况下可以支持的最大并发量。默认值为10。
hystrix.threadpool.default.maximumSize=50

#队列大小拒绝阈值,默认值为5。即使maxQueueSize未达到也会发生拒绝。在maxQueueSize==-1时不生效。
hystrix.threadpool.default.queueSizeRejectionThreshold=100

#maximumSize配置是否生效,默认值为false。maximumSize可以等于或高于coreSize。
#设置coreSize< maximumSize 创建一个可以维持maximumSize并发性的线程池;
# 但会在相对不活动期间将线程返回给系统。(受限于keepAliveTimeInMinutes)。
hystrix.threadpool.default.allowMaximumSizeToDivergeFromCoreSize = true

# 最大队列大小,默认值为 -1。值为-1时:使用 thenSynchronousQueue;值为正值时:使用 LinkedBlockingQueue。
hystrix.threadpool.default.maxQueueSize = 50

错误配置①:

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

feign使用的是懒加载,第一次调用时,会初始化各种bean,速度很慢,默认1秒很容易超时。

错误配置②:

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

因为 queueSizeRejectionThreshold 太小,实际上在并发达到 30 以上的时候,就会拒绝后面的请求了。

错误配置③:

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

因为 maxQueueSize 太小,实际上在并发达到 30 以上的时候,就会拒绝后面的请求了。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73158
  • 线程
    +关注

    关注

    0

    文章

    508

    浏览量

    20761

原文标题:feign 调用常见问题避坑指南!

文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    gazebo仿真常见问题遇见的记录

    大家好,我是一到周五就很开心的小鱼​。今天旧话重提,说一说做机器人仿真的时候​遇到的一些问题,这里小鱼基于之前写过的文章,再总结一次。1.gazebo仿真常见问题以下的,是从小鱼自己的悲惨经历
    发表于 09-15 06:42

    分享一些嵌入式系统编程中内存操作相关的指南

    在嵌入式系统的编程中,内存操作是我们常用到的,但往往也是易错的地方,怎么避免呢,今天给大家分享一些相关的指南。数据指针...
    发表于 12-17 07:18

    PCB设计指南

    本文就重点讲解PCB设计指南,99%的PCB工程师容易忽略的!点进来 大家在PCB设计
    的头像 发表于 03-20 18:20 1959次阅读
    PCB设计<b class='flag-5'>避</b><b class='flag-5'>坑</b><b class='flag-5'>指南</b>

    Feign第一次调用为什么会很慢?

    首先要了解Feign是如何进行远程调用的,这里面包括,注册中心、负载均衡、FeignClient之间的关系,微服务通过不论是eureka、nacos也好注册到服务端,Feign是靠Ribbon做负载
    的头像 发表于 08-17 15:00 2047次阅读
    <b class='flag-5'>Feign</b>第一次<b class='flag-5'>调用</b>为什么会很慢?

    指南】电容耐压降额裕量不合理导致电容频繁被击穿

    指南】电容耐压降额裕量不合理导致电容频繁被击穿
    的头像 发表于 11-23 09:04 3225次阅读
    【<b class='flag-5'>避</b><b class='flag-5'>坑</b><b class='flag-5'>指南</b>】电容耐压降额裕量不合理导致电容频繁被击穿

    PGA460常见问题(FAQ)和EVM故障排除指南

    电子发烧友网站提供《PGA460常见问题(FAQ)和EVM故障排除指南.pdf》资料免费下载
    发表于 10-09 10:25 5次下载
    PGA460<b class='flag-5'>常见问题</b>(FAQ)和EVM故障排除<b class='flag-5'>指南</b>

    2025年G口大带宽服务器选购指南这3点,省下50%成本!

    面对市场上琳琅满目的服务器产品,如何避免踩、实现成本与性能的平衡,成为企业和个人用户关注的焦点。本文将从配置需求、要点、成本控制三大维度,为您提供一份客观、简洁的2025年G口大带宽服务器选购
    的头像 发表于 07-10 10:17 1349次阅读

    PCBA代工指南常见问题+解决方案全解析

    一站式PCBA加工厂家今天为大家讲讲PCBA代工代购元器件常见问题有哪些?PCBA代工代购元器件常见问题及解决方案。随着科技的不断发展和市场需求的变化,越来越多的企业选择通过外包方式进行PCBA生产
    的头像 发表于 07-09 09:38 471次阅读

    PLC工业智能网关:功能解析、场景落地与选型攻略

    如何避免选型踩?本文从技术原理、核心价值、典型场景、指南四大维度,结合真实案例与行业趋势,为您彻底拆解PLC工业智能网关的“真面目”。
    的头像 发表于 07-16 13:21 468次阅读
    PLC工业智能网关:功能解析、场景落地与选型<b class='flag-5'>避</b><b class='flag-5'>坑</b>攻略

    苏宁开放平台商品详情接口实战:多维度数据获取与结构化处理(附核心代码 + 指南

    要求;2.结构化响应字段分组解析方法;3.提供可复用的签名工具类、QPS控制客户端和本地缓存管理工具;4.给出单商品查询和批量对比的实战示例。针对开发者常见问题(如签名失败、调用超限等)提供
    的头像 发表于 09-18 10:05 454次阅读

    爱回收商品详情接口全方位对接指南:从认证机制到数据提取最佳实践(附 Python 代码 + 成色数据处理)

    本文详解爱回收二手数码商品详情接口对接,涵盖认证、签名生成、成色映射、估价缓存等核心环节,提供可复用代码与指南,解决签名失败、数据延迟等常见问题
    的头像 发表于 09-25 10:33 538次阅读

    京东商品详情接口实战解析:从调用优化到商业价值挖掘(附代码)

    本文深入解析京东商品详情接口jd.union.open.goods.detail.query,涵盖核心特性、权限限制、关键参数及调用指南。通过实战代码演示数据采集、促销解析与商业分
    的头像 发表于 10-10 09:28 527次阅读
    京东商品详情接口实战解析:从<b class='flag-5'>调用</b>优化到商业价值挖掘(附<b class='flag-5'>避</b><b class='flag-5'>坑</b>代码)

    MES系统指南

    架构普及化 、 AI 算法工程化应用 、 数字孪生技术落地 。MES 系统已逐渐成为企业实现生产智能化的核心引擎。以下结合行业数据与技术趋势,为您解析国内MES 系统厂商的竞争力,并提供选型指南。 二、MES 系统厂商竞争力
    的头像 发表于 10-29 13:46 125次阅读

    指南!RK3568开发板选型,这5点没看清千万别下手!(附迅为驱动开发指南资源)

    指南!RK3568开发板选型,这5点没看清千万别下手!(附迅为驱动开发指南资源)
    的头像 发表于 10-30 15:49 351次阅读
    <b class='flag-5'>避</b><b class='flag-5'>坑</b><b class='flag-5'>指南</b>!RK3568开发板选型,这5点没看清千万别下手!(附迅为驱动开发<b class='flag-5'>指南</b>资源)

    车载功放芯片选型指南:从 CD7377CZ/CD7388 看 “参数≠实用” 的核心逻辑

    ,正是针对不同场景的需求设计,作为华润微授权代理商,深智微科技帮您理清选型关键。   1:别被 “大功率” 迷惑,负载匹配才是音质关键 常见
    的头像 发表于 12-09 09:43 232次阅读