当前位置: 首页 > news >正文

OpenFeign 切换HttpClient遇到的问题

背景

OpenFeign支持三种Http请求方式,默认情况下通过jdk中的HttpURLConnection向下游服务发起http请求(详见下图,源码详见feign.Client.Default),

默认的Client 采用 HttpURLConnection, 这种是无法复用的,每次都重新新建,调用量如果过大,就容易请求失败;

目前OpenFeign支持另外2中 HttpClient 和 OkHttp,这里记录HttpClient的使用
在这里插入图片描述

开启

# 远程调用优化
feign:okhttp:enabled: falsehttpclient:# 默认Feign使用的是JDK自带的URLConnection进行Http请求的,手动替换成Apache HttpClient专用的通信组件enabled: trueconfig:default: # 设置的全局超时时间connectTimeout: 3000 # 请求连接的超时时间readTimeout: 5000 # 请求处理的超时时间
// 保持和引入的spring-cloud-starter-openfeign版本一致即可;<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId></dependency>

遇到的问题

1、因为我这边是直接在测试中调用;

直接相应的类开启2个参数:

@EnableFeignClients(basePackages ={"com.xxx.xxx"})
@ImportAutoConfiguration({FeignAutoConfiguration.class, FeignConfig.class})

问题缺少配置:

由于是直接在测试中取的数据

需要自己手动注入一些配置

在这里插入图片描述

FeignAutoConfiguration 类中就需要;ApacheHttpClientFactory, 这个注入类;

在这里插入图片描述

这个类默认的实现有一个:

DefaultApacheHttpClientFactory,还需要找一个注入的配置;

这个配置在:HttpClientConfiguration

在这里插入图片描述
最终加载配置变更为:

@ImportAutoConfiguration({FeignAutoConfiguration.class, FeignConfig.class, HttpClientConfiguration.class})

同理: 如果要测试 OkHttp的调用, 也要加入这个配置;

http://www.lryc.cn/news/25197.html

相关文章:

  • 流计算框架storm概览
  • 如何使用Coercer强制Windows Server认证任意主机
  • 【小程序】已有公众号认证,一步一步申请小程序(图文)
  • Redis学习笔记:缓存运用常见问题
  • 使用python 脚本挑出coco 数据集中的某一类数据
  • Python虚拟环境(pipenv、venv、conda一网打尽)[通俗易懂]
  • Android Kotlin实战之高阶使用泛型扩展协程懒加载详解
  • 数字映射:数字孪生技术的应用场景及作用
  • 配置二层远程端口镜像案例
  • Linux-0.11 kernel目录fork.c详解
  • 如何或者无插件Web页面监控播放软件LiveNVR的固定视频流地址,实现大屏上墙、播放、视频分析等目的
  • postman断言脚本(2)
  • js中?.、??的具体用法
  • 刷题笔记1 | 704. 二分查找,27. 移除元素
  • 柔性电路板的优点、分类和发展方向
  • OpenCV入门(二)快速学会OpenCV1图像基本操作
  • Redis源码---有序集合为何能同时支持点查询和范围查询
  • 从计费出账加速的设计谈周期性业务的优化思考
  • 垃圾回收的概念与算法(第四章)
  • 让您的客户了解您的制造过程“VR云看厂实时数字化展示”
  • CV——day80 读论文:DLT-Net:可行驶区域、车道线和交通对象的联合检测
  • 工具篇4.5数据可视化工具大全
  • 京东前端二面常考手写面试题(必备)
  • 如何用AST还原某音的JSVMP
  • 【蓝桥杯试题】 递归实现指数型枚举例题
  • 【用Group整理目录结构 Objective-C语言】
  • JavaScript高级程序设计读书分享之8章——8.1理解对象
  • 代码随想录算法训练营第四十天 | 343. 整数拆分,96.不同的二叉搜索树
  • 数据结构与算法系列之顺序表的实现
  • 基于Linux_ARM板的驱动烧写及连接、挂载详细过程(附带驱动程序)