技术标签: 微服务 spring cloud 微服务入门到入土 http
SpringCloud微服务框架中使用OpenFeign做服务间调用时(入参为@ResponseBody标注的JavaBean,请求类型为POST),被调用方正常执行,调用方报错,报错信息如下:
nested exception is feign.RetryableException: Incomplete output stream executing POST http://SERVICE-A/user/] with root cause
从报错的截图可以看出feign采用jdk原生HttpURLConnection向下游服务发起http请求,这里报错的原因是:执行POST的输出流不完整,即在OutputStream写入流时出错。
在服务调用方pom.xml文件中添加如下依赖:
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
不需要在application.yml中使用feign.httpclient.enabled=true
指定使用HttpClient。
因为在将LoadBalancerFeignClient
注入到Spring容器时,采用HttpClient方式的配置类HttpClientFeignLoadBalancedConfiguration
的条件装配信息如下:
对属性feign.httpclient.enabled
做评估时,如果未指定该属性,则默认为true,因此只需要可以找到feign.httpclient
包的ApacheHttpClient
类即会使用Apache的httpClient。
在服务调用方pom.xml文件中添加如下依赖:
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
</dependency>
另外需要在application.yml中使用feign.okhttp.enabled=true
指定使用OKHttpClient。
因为在将LoadBalancerFeignClient
注入到Spring容器时,采用OKHttpClient方式的配置类OkHttpFeignLoadBalancedConfiguration
的条件装配信息如下:
对属性feign.okhttp.enabled
做评估时,如果未指定该属性(默认为false) 或指定为 false则当前配置类不符合条件装配的规则,则不会使用OKHttpClient;另外还需要引入feign.okhttp
包的OkHttpClient
类。
想了解更多OpenFeign的知识点,可以看博主的OpenFeign系列文章:
- SpringCloud之Feign实现声明式客户端负载均衡详细案例
- SpringCloud之OpenFeign实现服务间请求头数据传递(OpenFeign拦截器RequestInterceptor的使用)
- SpringCloud之OpenFeign的常用配置(超时、数据压缩、日志)
- SpringCloud之OpenFeign的核心组件(Encoder、Decoder、Contract)
- SpringBoot启动流程中开启OpenFeign的入口(ImportBeanDefinitionRegistrar详解)
- 源码剖析OpenFeign如何扫描所有的FeignClient
- 源码剖析OpenFeign如何为FeignClient生成动态代理类
- …等等等
文章浏览阅读3.1k次。编程学习-函数_用c/c++语言编写10!的递归算法程序
文章浏览阅读2.5k次,点赞3次,收藏5次。对鸿蒙app开发一些基础知识的学习,以及有关的集成开发工具Deveco Studio的学习。_entrymodules
文章浏览阅读364次。#include #include #include using namespace std; long long int yueshu(int x,int y){ if(x%y==0){ return y; }else{ return yueshu(y,x%y); }} int main(){ int x,y; cin>>x>>y; int t=x; _c++ 最大公约数和最小公倍数问题noip2001
文章浏览阅读1.9k次。2.读取当前频谱仪波形中的 Ton和Tof时间,计算占空比x(TON/(TON+TOFF))。Sweep time Trace RMS 或 Sample(设备没有 RMS 检测器时)Sweep Time 10ms ≤Sweep point*工(工为当前模式传输周期)3.取10log(1/x),如图计算出来是0.3,加到功率计对应的功率上面。好久不测试占空比,快忘了,幸亏同事提醒,用15分钟的时间维度测试完占空比。_占空比的测试与调整
文章浏览阅读451次。文章目录A - Max Sum Plus PlusB - Ignatius and the Princess IVC - Monkey and BananaD - Doing HomeworkE - Super Jumping! Jumping! Jumping!F - Piggy-Bank题目链接:保研练习系列A - Max Sum Plus Plus题目链接:A - Max Sum Pl...
文章浏览阅读705次。我们已经接触过很多序列化框架(或者集成系统),比如protobuf、hessian、thrift等,它们各有优缺点以及各自的实用场景,Avro也是一个序列化框架,它的设计思想、编程模式都和thirft非常相似,也都是Apache的顶级项目。Avro还提供了RPC机制,可以不需要生成额外的API代码即可使用Avro来存储数据和RPC交互,“代码生成”是可选的,这一点区别于protobuf和thrif_java使用avro示例
文章浏览阅读1.1k次,点赞2次,收藏8次。本文以建立一个能够读写寄存器数值的内核驱动模块来介绍如何给OpenWr添加内核驱动模块。_openwrt驱动开发
文章浏览阅读1.1w次。oracle sysdate-1/24的意思解释在oracle中,查询出来的日期往前推迟多长时间计算,我们可以用date-A/B/C/D这种格式:其中A ---------表示天其中B----------表示小时其中C----------表示分钟其中D----------表示秒实例:如果我们计算当前时间往前推3小时,就应该这样去写select sysdate-1/8 from dua..._sysdate-1/24
文章浏览阅读3.3k次。Day0早上早早地起,晚上晚晚地到,一整天就在赶路中度过了。前一天晚上收拾好了行囊(毛衣+去年EC-final发的棉夹克+两桶泡面+电脑+手机充电器+雨伞+模板),据说长春特别冷,而我们这种南方城市还在穿短袖。早上7点多的动车,经历11个小时赶往沈阳北,再转动车到长春,真心觉得路好长。怎么打发这段漫长时光(虽然听说别人还有需要48+才能到长春的),结果最终就那样昏昏沉沉地睡了一天。_2016 ccpc changchun regional contest)
文章浏览阅读895次,点赞17次,收藏29次。/声明一个异步的函数。//声明一个异步的函数。
文章浏览阅读1.2k次。本文给出了一个使用pyseria_asyncio 模块进行串口异步编程的简单实例。该实例可以独立运行。_serial_asyncio
文章浏览阅读1.8w次,点赞43次,收藏330次。STM32 USB相关知识扫盲1、基础知识STM32基础型(F1系列)所带的USB是全速。2、电气属性USB的通信都是由主机发起的,这一点与IIC协议是类似的。2.1 数据线USB使用差分传输模式,有两条数据线,分别是:USB数据正信号线,USB Data Positive,即USB-DP线,简写为D+USB数据负信号线,USB Data Minus, 即USB-DM线,简写为D-剩下的就是电源线(5V-Vbus)和地线(GND)。2.2 USB主机是如何识别设备是高速设备/全速_stm32 usb