报错信息

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就会报上面的错误。
需要添加一些配置

  1. 添加HttpMessageConverters的bean
@Configuration
public class HttpMsgConverConfig {@Bean@ConditionalOnMissingBeanpublic HttpMessageConverters messageConverters(ObjectProvider<HttpMessageConverter<?>> converters) {return new HttpMessageConverters(converters.orderedStream().collect(Collectors.toList()));}
}
  1. 异步调用openfeign接口,修改controller
 @ResourceOauthFeign oauthFeign;@GetMapping("/get")public Object get() {CompletableFuture<Object> completableFuture = CompletableFuture.supplyAsync(() -> {return oauthFeign.openFeignApi();});return completableFuture;}

openFeign异步调用问题相关推荐

  1. springboot 多线程_SpringBoot异步调用@Async

    一. 什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行. 二. 如何实现异步调用 ...

  2. C++多线程:package_task异步调用任何目标执行操作

    文章目录 描述 函数成员及使用 总结 我们上一篇描述关于C++多线程中的异步操作相关库( async和 promise),本节将分享c++标准库中最后一个多线程异步操作库 package_task的学 ...

  3. springboot之异步调用@Async

    引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3. ...

  4. 异步调用WCF的方法需要小心的地方

    直接使用下面的代码,由于client对象占用的资源没有被释放,会导致内存泄露 GetSimServiceReference.GetSimServiceClient client = new GetSi ...

  5. 关于webservice的异步调用简单实例

    于webservice的异步调用简单实例 无论在任何情况下,被调用方的代码无论是被异步调用还是同步调用的情况下,被调用方的代码都是一样的, 下面,我们就以异步调用一个webservice 为例作说明. ...

  6. Spring Boot 中使用@Async实现异步调用,加速任务执行!

    欢迎关注方志朋的博客,回复"666"获面试宝典 什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照 ...

  7. Spring Boot 异步请求和异步调用

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 一.Spring Boot中异步请求的使用 1.异步请求与同步请求 ...

  8. xml提示无法连接到远程服务器,异步调用WebService时,如何捕捉“无法连接远程服务器”异常...

    在winform窗体中调用webservice,过程如下: ①Form1中弹出Form2 Form2 form2 = new Form2(); form2.ShowDialoag(); ②Form2中 ...

  9. JavaScript异步调用的发展历程

    同步与异步 通常,代码是由上而下依次执行的.如果有多个任务,就必须排队,前一个任务完成,后一个任务才能执行.这种连续的执行模式就叫做同步. a(); b(); c(); 复制代码 上面代码中,a.b. ...

最新文章

  1. python-68:BS4获取多个标签的文本
  2. python简单编程例子-Python实现的简单万年历例子分享
  3. iOS 仿通讯录索引
  4. struts2+jquery之form插件实现异步上传图片并显示
  5. 浅析透雾监控镜头的四大透雾技术
  6. python自带的统计函数_NumPy统计函数的实现方法
  7. c语言 空格_C语言100题集合-ex003
  8. python基本语言元素是_Python-基本语法元素
  9. 推荐几个精致的web UI框架
  10. PHP程序员必须收藏的资源大全
  11. 读书笔记 摘自:《斯坦福极简经济学》
  12. python漏洞扫描器编写_漏洞扫描器开发与设计的一点感悟
  13. 计算机前沿技术讲座心得体会
  14. Cosmos 是什么? 一文了解Cosmos的来龙去脉
  15. 【Debug】ERROR: ld.so: object '/usr/local/lib/ff.so' from /etc/ld.so.preload cannot be preloaded: igno
  16. java 实现排列组合输出
  17. 一切不能拌饭的菜都是耍流氓
  18. [原创]QQ农场外挂辅助程序-小萝莉偷菜机器人,提供下载。
  19. ABB机器人FTP传输机器人文件
  20. 费舍尔方法 续:逆高斯法(Stouffer‘s Z-score method)

热门文章

  1. [EULAR文摘] 新证据: NSAID对AS放射学进展的影响
  2. [英语语法]句法之省略句型
  3. adc0809 c语言程序,51单片机驱动ADC0809的C语言程序
  4. 让VIVI支持yaffs
  5. 文献 Application of deep learning tothe diagnosis of cervical lymph node metastasis from thyroid阅读笔记
  6. 产品价值链与客户价值链
  7. 大连理工大学计算机学院讲师名单,大连理工大学学科评估排名!附大工a类学科名单...
  8. 2021年安全员-C证考试内容及安全员-C证免费试题
  9. 制定带铜衬轴套零件的加工工艺,设计铣20台面的铣床夹具(含全套CAD图纸)
  10. 前端学习日记 -- 八月