block()/blockFirst()/blockLast() are blocking,which is not supported in thread reactor-http-kqueue-3

这篇具有很好参考价值的文章主要介绍了block()/blockFirst()/blockLast() are blocking,which is not supported in thread reactor-http-kqueue-3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

升级spring boot到2.7.0,gateway网关Feign调用其他微服务时,服务调用异常,异常信息:java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-kqueue-3

gateway网关Feign调用微服务异常,spring boot 2.7.0 WebFlux必须使用异步调用,同步会报错

详细错误日志如下:

2022-06-04 21:11:32.760 ERROR 28936 --- [r-http-kqueue-3] c.c.exception.GlobalExceptionHandler     : 系统异常,请稍后重试!详细错误信息为:block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-kqueue-3

java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-kqueue-3
  at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:83) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.Mono.block(Mono.java:1707) ~[reactor-core-3.4.18.jar:3.4.18]
  at org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient.choose(BlockingLoadBalancerClient.java:175) ~[spring-cloud-loadbalancer-3.1.3.jar:3.1.3]
  at org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient.execute(FeignBlockingLoadBalancerClient.java:97) ~[spring-cloud-openfeign-core-3.1.3.jar:3.1.3]
  at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:119) ~[feign-core-11.8.jar:na]
  at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:89) ~[feign-core-11.8.jar:na]
  at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:100) ~[feign-core-11.8.jar:na]
  at jdk.proxy2/jdk.proxy2.$Proxy114.postAccessToken(Unknown Source) ~[na:na]
  at com.cloud.gateway.controller.TokenController.login(TokenController.java:66) ~[classes/:na]
  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
  at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
  at org.springframework.web.reactive.result.method.InvocableHandlerMethod.lambda$invoke$0(InvocableHandlerMethod.java:144) ~[spring-webflux-5.3.20.jar:5.3.20]
  at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:251) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:336) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:101) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:299) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) ~[reactor-core-3.4.18.jar:3.4.18]
  at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:400) ~[reactor-netty-core-1.0.19.jar:1.0.19]
  at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:419) ~[reactor-netty-core-1.0.19.jar:1.0.19]
  at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:600) ~[reactor-netty-http-1.0.19.jar:1.0.19]
  at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:93) ~[reactor-netty-core-1.0.19.jar:1.0.19]
  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:266) ~[reactor-netty-http-1.0.19.jar:1.0.19]
  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327) ~[netty-codec-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299) ~[netty-codec-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.kqueue.AbstractKQueueStreamChannel$KQueueStreamUnsafe.readReady(AbstractKQueueStreamChannel.java:544) ~[netty-transport-classes-kqueue-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.kqueue.AbstractKQueueChannel$AbstractKQueueUnsafe.readReady(AbstractKQueueChannel.java:383) ~[netty-transport-classes-kqueue-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.kqueue.KQueueEventLoop.processReady(KQueueEventLoop.java:211) ~[netty-transport-classes-kqueue-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.channel.kqueue.KQueueEventLoop.run(KQueueEventLoop.java:289) ~[netty-transport-classes-kqueue-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
  at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.77.Final.jar:4.1.77.Final]
  at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]

2022-06-04 21:11:32.769  INFO 28936 --- [oundedElastic-1] com.alibaba.nacos.client.naming          : new ips(1) service: DEFAULT_GROUP@@oauth-center -> [{"instanceId":"192.168.1.108#9001#DEFAULT#DEFAULT_GROUP@@oauth-center","ip":"192.168.1.108","port":9001,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@oauth-center","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}]
2022-06-04 21:11:32.769  INFO 28936 --- [oundedElastic-1] com.alibaba.nacos.client.naming          : current ips:(1) service: DEFAULT_GROUP@@oauth-center -> [{"instanceId":"192.168.1.108#9001#DEFAULT#DEFAULT_GROUP@@oauth-center","ip":"192.168.1.108","port":9001,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@oauth-center","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}

日志图片:
block()/blockFirst()/blockLast() are blocking,which is not supported in thread reactor-http-kqueue-3

解决方案:
使用多线程异步调用方式,如下代码所示

	     ExecutorService executorService = Executors.newSingleThreadExecutor();
        // WebFlux异步调用,同步会报错
        Future future = executorService.submit(() -> (Map) oauth2Client.postAccessToken(header, parameters));
        Map<String, Object> tokenInfo = (Map<String, Object>)future.get();
//        Map<String, Object> tokenInfo = oauth2Client.postAccessToken(header, parameters);

        executorService.shutdown();

相关大数据学习demo地址:
https://github.com/carteryh/big-data文章来源地址https://www.toymoban.com/news/detail-513252.html

到了这里,关于block()/blockFirst()/blockLast() are blocking,which is not supported in thread reactor-http-kqueue-3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • maven 配置http私服Since Maven 3.8.1 http repositories are blocked. 报错处理

    刷maven报错 com.saas:pdf:pom:0.0.1 failed to transfer from http://0.0.0.0/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of maven-default-http-blocker has elapsed or updates are forced. Original error: Could not transfer artifact com.saas:pdf:pom:0.0.1 from/to maven-d

    2024年01月21日
    浏览(31)
  • mysql之host is blocked问题

    程序上线一段时间之后,更新程序总是遇到这个问题    每次都是重启几次程序,或者执行 毕竟指标不治本,抽出时间决定分析一下问题,查阅了几篇博客。(感谢这几位大佬) https://blog.51cto.com/u_14286115/3323651 被我误解的max_connect_errors-阿里云开发者社区 https://www.cnblogs.com

    2024年02月12日
    浏览(27)
  • verity cannot ... ‘/dev/block/dm-4‘ is read-only/ 证书cacerts系统目录

    网上的说的一种做法是 su mount -o rw,remount / mount -o rw,remount /system cp /data/misc/user/0/cacerts-added/269953fb.0 /system/etc/security/cacerts/ rm /data/misc/user/0/cacerts-added/269953fb.0 reboot 但是我机子是android 12.0 提示 \\\'/dev/block/dm-4\\\' is read-only 用adb root 和 adb disable-verity 关闭verity 验证却提示 verity cannot

    2024年02月13日
    浏览(38)
  • pgsql报错current transaction is aborted.commands ignored until end of transaction block

    这个错误翻译过来是: 当前事务已中止。在事务块结束之前,要求被忽略 意思就是在pgsql中,同一事务中如果某次数据库操作出错了,那么当前事务中这个操作以后的所有命令都将出错。 进行修改的话就是 可以增加检测机制,当我们检测事务中有sql失败时,可以通过回滚

    2024年02月04日
    浏览(30)
  • error: #268: declaration may not appear after executable statement in block问题解决方法

    在stm32f407编程中遇到了error: #268: declaration may not appear after executable statement in block,编写代码如下: 报错情况: 问题分析: 在c89(1989年)标准中规定了c文件中局部变量的定义只能放在所有执行语句前,放在开头处;c99(1999年)标准中c文件中局部变量的定义可以放在任何地方

    2024年02月13日
    浏览(38)
  • Keil 报错 declaration may not appear after executable statement in block的解决办法

    在移植修改例程代码时,Keil 报错 “declaration may not appear after executable statement in block”,如下图所示: 经检查代码并没有问题,复制粘贴过来也行不通,说明不是代码本事的问题,应该时编译器的设置的问题。 C语言本身是有ANSI的标准的,但是随着C++的发展,C语言的标准也不

    2024年02月07日
    浏览(40)
  • STM32问题_01:declaration may not appear after executable statement in block

    如图:在点灯的过程中想写一个for循环来实现随机数点灯功能,但是如下图第26行的代码出现了问题 “declaration may not appear after executable statement in block” ,翻译过来就是 声明不能出现在块中的可执行语句之后 。其实int i是声明语句,值得注意的是 “GPIO_InitTypeDef GIIOPP” (此

    2024年02月04日
    浏览(30)
  • Gitlab登录报错 Your account is pending approval from your GitLab administrator and hence blocked.

    Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLabadministrator if you think this is an error. 用root账号登录Git lab 点击左上角的三条杠图标,再点击Admin 点击Users 再找到对应的user,点击Approve就可以了 参考链接: https://blog.csdn.net/weixin_56270746/article/det

    2024年02月13日
    浏览(30)
  • ValueError:The following settings are not supported :{‘username‘: ‘neo4j“}

    py2neo版本不同所导致的问题,下面我通过一段代码说明该问题。 不同版本的py2neo,连接neo4j数据库的方式如上,拿走不谢!

    2024年02月14日
    浏览(35)
  • mysql 错误:Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts‘

    记录一次解决异常的总结。 最近服务器上的程序基本过1天就会报  在网上找了好多总结完就两类解决方式 1:设置最大的错误数量  set global max_connect_errors = 1000; 2:清除缓解记录 flush hosts; 但是两个都是治标不治本,过一段时间会继续出现,网上有的人报这个错是因为配置了

    2024年02月11日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包