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

    文章

    4786

    浏览量

    68548
  • 线程
    +关注

    关注

    0

    文章

    504

    浏览量

    19677

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    直放站常见问题及分析

    直放站常见问题及分析的内容:1、问题的定位及判断2、室外直放站常见的问题3、室内直放站常见的问题
    发表于 08-01 08:26 63次下载
    直放站<b class='flag-5'>常见问题</b>及分析

    Keil编译常见问题

    吴鉴鹰总结的Keil 编译常见问题,吴鉴鹰总结的Keil 编译常见问题
    发表于 07-22 15:31 10次下载

    灰尘网络常见问题

    灰尘网络常见问题
    发表于 04-28 15:08 8次下载
    灰尘网络<b class='flag-5'>常见问题</b>

    C语言常见问题

    C语言常见问题
    发表于 03-21 14:57 0次下载

    PCB设计指南

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

    【6月28日|直播】遇见KeysightCare——贵重仪器安全指南

    现场直播时间: 2023年6月28日 下午1415   立即报名 01 直播简介 什么?!价值百万的仪器坏了?怎么就坏了呢?如果你有这样的困惑,快来参加直播,听听专家详细介绍如何“”,保证高端
    的头像 发表于 06-14 07:40 484次阅读
    【6月28日|直播】遇见KeysightCare——贵重仪器安全<b class='flag-5'>避</b><b class='flag-5'>坑</b><b class='flag-5'>指南</b>

    简化本地Feign调用的方法

    在平常的工作中,OpenFeign作为微服务间的调用组件使用的非常普遍,接口配合注解的调用方式突出一个简便,让我们能无需关注内部细节就能实现服务间的接口调用
    的头像 发表于 06-20 10:01 836次阅读
    简化本地<b class='flag-5'>Feign</b><b class='flag-5'>调用</b>的方法

    OpenSSL安装常见问题

    OpenSSL安装常见问题
    的头像 发表于 07-07 11:17 901次阅读
    OpenSSL安装<b class='flag-5'>常见问题</b>

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

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

    PoE设备选购指南

    在工业通信领域,通过一根网线就能传输数据又能为设备供电的PoE(以太网供电)设备应用十分常见,比如PoE交换机、PoE供电器、PoE延长器等。尽管如此,我们在选购这些PoE设备时,也常常会遇到一些“”,给工作带来很大的麻烦。
    的头像 发表于 11-07 09:10 523次阅读

    IoT产品|PoE设备选购指南,这些“雷”打死也别踩!

    ”,给工作带来很大的麻烦。 指南一:选择有专用控制芯片的标准PoE交换机 目前市场上除了有符合国际标准PoE交换机外,也充斥着很多非标准的PoE交换机。标准PoE交换机,在供电
    的头像 发表于 11-13 10:11 450次阅读

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

    指南】电容耐压降额裕量不合理导致电容频繁被击穿
    的头像 发表于 11-23 09:04 2018次阅读
    【<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 0次下载
    PGA460<b class='flag-5'>常见问题</b>(FAQ)和EVM故障排除<b class='flag-5'>指南</b>