openFeign异步调用问题
报错信息
java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-nio-3at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:83) ~[reactor-core-3.4.15.jar:3.4.15]Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):*__checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]*__checkpoint ⇢ HTTP GET "/get" [ExceptionHandlingWebHandler]
版本:
springcloud alibaba 2021.0.1.0
springboot 2.7.0
gateway 3.1.1
openfeign 3.1.1
还原场景
网关服务通过openfeign调用授权服务
授权服务
@GetMapping("/get")public String openFeignApi(){return "asdgwe";}
网关服务
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class GatewayServerApplication {public static void main(String[] args) {SpringApplication.run(GatewayServerApplication.class, args);}}
@Component
@FeignClient(value = "oauth")
public interface OauthFeign {@GetMapping("/get")String openFeignApi();
}
controller
@ResourceOauthFeign oauthFeign;@GetMapping("/get")public Object get() {return oauthFeign.openFeignApi();}
此时请求网关的/get
就会报上面的错误。
需要添加一些配置
- 添加
HttpMessageConverters
的bean
@Configuration
public class HttpMsgConverConfig {@Bean@ConditionalOnMissingBeanpublic HttpMessageConverters messageConverters(ObjectProvider<HttpMessageConverter<?>> converters) {return new HttpMessageConverters(converters.orderedStream().collect(Collectors.toList()));}
}
- 异步调用openfeign接口,修改controller
@ResourceOauthFeign oauthFeign;@GetMapping("/get")public Object get() {CompletableFuture<Object> completableFuture = CompletableFuture.supplyAsync(() -> {return oauthFeign.openFeignApi();});return completableFuture;}
openFeign异步调用问题相关推荐
- springboot 多线程_SpringBoot异步调用@Async
一. 什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行. 二. 如何实现异步调用 ...
- C++多线程:package_task异步调用任何目标执行操作
文章目录 描述 函数成员及使用 总结 我们上一篇描述关于C++多线程中的异步操作相关库( async和 promise),本节将分享c++标准库中最后一个多线程异步操作库 package_task的学 ...
- springboot之异步调用@Async
引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3. ...
- 异步调用WCF的方法需要小心的地方
直接使用下面的代码,由于client对象占用的资源没有被释放,会导致内存泄露 GetSimServiceReference.GetSimServiceClient client = new GetSi ...
- 关于webservice的异步调用简单实例
于webservice的异步调用简单实例 无论在任何情况下,被调用方的代码无论是被异步调用还是同步调用的情况下,被调用方的代码都是一样的, 下面,我们就以异步调用一个webservice 为例作说明. ...
- Spring Boot 中使用@Async实现异步调用,加速任务执行!
欢迎关注方志朋的博客,回复"666"获面试宝典 什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照 ...
- Spring Boot 异步请求和异步调用
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 一.Spring Boot中异步请求的使用 1.异步请求与同步请求 ...
- xml提示无法连接到远程服务器,异步调用WebService时,如何捕捉“无法连接远程服务器”异常...
在winform窗体中调用webservice,过程如下: ①Form1中弹出Form2 Form2 form2 = new Form2(); form2.ShowDialoag(); ②Form2中 ...
- JavaScript异步调用的发展历程
同步与异步 通常,代码是由上而下依次执行的.如果有多个任务,就必须排队,前一个任务完成,后一个任务才能执行.这种连续的执行模式就叫做同步. a(); b(); c(); 复制代码 上面代码中,a.b. ...
最新文章
- python-68:BS4获取多个标签的文本
- python简单编程例子-Python实现的简单万年历例子分享
- iOS 仿通讯录索引
- struts2+jquery之form插件实现异步上传图片并显示
- 浅析透雾监控镜头的四大透雾技术
- python自带的统计函数_NumPy统计函数的实现方法
- c语言 空格_C语言100题集合-ex003
- python基本语言元素是_Python-基本语法元素
- 推荐几个精致的web UI框架
- PHP程序员必须收藏的资源大全
- 读书笔记 摘自:《斯坦福极简经济学》
- python漏洞扫描器编写_漏洞扫描器开发与设计的一点感悟
- 计算机前沿技术讲座心得体会
- Cosmos 是什么? 一文了解Cosmos的来龙去脉
- 【Debug】ERROR: ld.so: object '/usr/local/lib/ff.so' from /etc/ld.so.preload cannot be preloaded: igno
- java 实现排列组合输出
- 一切不能拌饭的菜都是耍流氓
- [原创]QQ农场外挂辅助程序-小萝莉偷菜机器人,提供下载。
- ABB机器人FTP传输机器人文件
- 费舍尔方法 续:逆高斯法(Stouffer‘s Z-score method)
热门文章
- [EULAR文摘] 新证据: NSAID对AS放射学进展的影响
- [英语语法]句法之省略句型
- adc0809 c语言程序,51单片机驱动ADC0809的C语言程序
- 让VIVI支持yaffs
- 文献 Application of deep learning tothe diagnosis of cervical lymph node metastasis from thyroid阅读笔记
- 产品价值链与客户价值链
- 大连理工大学计算机学院讲师名单,大连理工大学学科评估排名!附大工a类学科名单...
- 2021年安全员-C证考试内容及安全员-C证免费试题
- 制定带铜衬轴套零件的加工工艺,设计铣20台面的铣床夹具(含全套CAD图纸)
- 前端学习日记 -- 八月