sofastack / sofa-rpc

SOFARPC is a high-performance, high-extensibility, production-level Java RPC framework.
https://www.sofastack.tech/sofa-rpc/docs/Home
Apache License 2.0
3.81k stars 1.17k forks source link

关于com.alipay.remoting.exception.ConnectionClosedException: Connection closed #919

Closed ronglg closed 4 years ago

ronglg commented 4 years ago

Your question

想咨询下,关于以下异常问题,排查思路 问题描述: 【阿里云环境】

  1. 调用链路:网关通过rpc(bolt协议)泛化直连调用rpc发布bolt协议的接口
  2. 接口报文少,调用无异常;
  3. 当调用接口报文过多时,报如下异常: com.alipay.sofa.rpc.core.exception.SofaRpcException: com.alipay.remoting.exception.ConnectionClosedException: Connection closed! the address is 10.103.135.125:12200 at com.alipay.sofa.rpc.transport.bolt.BoltClientTransport.convertToRpcException(BoltClientTransport.java:347) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.transport.bolt.BoltClientTransport.syncSend(BoltClientTransport.java:251) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.client.AbstractCluster.doSendMsg(AbstractCluster.java:514) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.client.AbstractCluster.sendMsg(AbstractCluster.java:485) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.filter.ConsumerInvoker.invoke(ConsumerInvoker.java:60) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.filter.sofatracer.ConsumerTracerFilter.invoke(ConsumerTracerFilter.java:66) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.filter.ConsumerGenericFilter.invoke(ConsumerGenericFilter.java:97) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.filter.RpcReferenceContextFilter.invoke(RpcReferenceContextFilter.java:80) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.filter.ConsumerExceptionFilter.invoke(ConsumerExceptionFilter.java:37) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.filter.FilterInvoker.invoke(FilterInvoker.java:98) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.filter.FilterChain.invoke(FilterChain.java:262) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.client.AbstractCluster.filterChain(AbstractCluster.java:478) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.client.FailoverCluster.doInvoke(FailoverCluster.java:66) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.client.AbstractCluster.invoke(AbstractCluster.java:285) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.client.ClientProxyInvoker.invoke(ClientProxyInvoker.java:83) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.api.GenericService_proxy_0.$genericInvoke(GenericService_proxy_0.java) ~[?:5.6.0] at com.wish.techmidplat.gateway.client.imp.CommunicateSofaRpc.action(CommunicateSofaRpc.java:239) ~[techmidplat-gateway-client-0.0.1-SNAPSHOT.jar!/:0.0.1-SNAPSHOT] at com.wish.plat.gateway.app.AppschMain.lambda$aciton$3(AppschMain.java:224) ~[classes!/:3.1.5] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:1.8.0_161] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_161] at java.util.ArrayList$Itr.forEachRemaining(ArrayList.java:899) ~[?:1.8.0_161] at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[?:1.8.0_161] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_161] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_161] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:1.8.0_161] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:1.8.0_161] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_161] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[?:1.8.0_161] at com.wish.plat.gateway.app.AppschMain.aciton(AppschMain.java:112) ~[classes!/:3.1.5] at com.wish.plat.gateway.filter.GatewayAdaptGatewayFilterFactory.lambda$apply$0(GatewayAdaptGatewayFilterFactory.java:237) ~[classes!/:3.1.5] at org.springframework.cloud.gateway.filter.OrderedGatewayFilter.filter(OrderedGatewayFilter.java:44) ~[spring-cloud-gateway-core-2.1.2.RELEASE.jar!/:2.1.2.RELEASE] at org.springframework.cloud.gateway.handler.FilteringWebHandler$DefaultGatewayFilterChain.lambda$filter$0(FilteringWebHandler.java:118) ~[spring-cloud-gateway-core-2.1.2.RELEASE.jar!/:2.1.2.RELEASE] at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:44) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.Mono.subscribe(Mono.java:3590) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at rx.RxReactiveStreams$1.call(RxReactiveStreams.java:60) ~[rxjava-reactive-streams-1.2.1.jar!/:1.2.1] at rx.RxReactiveStreams$1.call(RxReactiveStreams.java:57) ~[rxjava-reactive-streams-1.2.1.jar!/:1.2.1] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.unsafeSubscribe(Observable.java:10327) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35) ~[rxjava-1.3.8.jar!/:1.3.8] at rx.Observable.subscribe(Observable.java:10423) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.Observable.subscribe(Observable.java:10390) ~[rxjava-1.3.8.jar!/:1.2.1] at rx.Observable.subscribe(Observable.java:10271) ~[rxjava-1.3.8.jar!/:1.2.1] at org.springframework.cloud.gateway.filter.factory.HystrixGatewayFilterFactory.lambda$null$0(HystrixGatewayFilterFactory.java:121) ~[spring-cloud-gateway-core-2.1.2.RELEASE.jar!/:2.1.2.RELEASE] at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:53) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.Mono.subscribe(Mono.java:3590) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoIgnorePublisher.subscribe(MonoIgnorePublisher.java:41) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoPeekTerminal.subscribe(MonoPeekTerminal.java:61) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:153) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.ignoreDone(MonoIgnoreThen.java:190) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreInner.onComplete(MonoIgnoreThen.java:240) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:252) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onComplete(FluxDefaultIfEmpty.java:98) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:144) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.FluxContextStart$ContextStartSubscriber.onComplete(FluxContextStart.java:122) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onComplete(FluxMapFuseable.java:336) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:385) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1479) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.MonoCollectList$MonoBufferAllSubscriber.onComplete(MonoCollectList.java:118) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:252) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136) ~[reactor-core-3.2.2.RELEASE.jar!/:3.2.2.RELEASE] at reactor.netty.channel.FluxReceive.terminateReceiver(FluxReceive.java:378) ~[reactor-netty-0.8.2.RELEASE.jar!/:0.8.2.RELEASE] at reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:202) ~[reactor-netty-0.8.2.RELEASE.jar!/:0.8.2.RELEASE] at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:343) ~[reactor-netty-0.8.2.RELEASE.jar!/:0.8.2.RELEASE] at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:325) ~[reactor-netty-0.8.2.RELEASE.jar!/:0.8.2.RELEASE] at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:442) ~[reactor-netty-0.8.2.RELEASE.jar!/:0.8.2.RELEASE] at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:141) ~[reactor-netty-0.8.2.RELEASE.jar!/:0.8.2.RELEASE] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:188) ~[reactor-netty-0.8.2.RELEASE.jar!/:0.8.2.RELEASE] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:808) ~[netty-transport-native-epoll-4.1.29.Final-linux-x86_64.jar!/:4.1.29.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:382) ~[netty-transport-native-epoll-4.1.29.Final-linux-x86_64.jar!/:4.1.29.Final] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:315) ~[netty-transport-native-epoll-4.1.29.Final-linux-x86_64.jar!/:4.1.29.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) ~[netty-all-4.1.29.Final.jar!/:4.1.29.Final] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161] Caused by: com.alipay.remoting.exception.ConnectionClosedException: Connection closed! the address is 10.103.135.125:12200 at com.alipay.remoting.rpc.RpcResponseResolver.preProcess(RpcResponseResolver.java:91) ~[bolt-1.5.2.jar!/:?] at com.alipay.remoting.rpc.RpcResponseResolver.resolveResponseObject(RpcResponseResolver.java:54) ~[bolt-1.5.2.jar!/:?] at com.alipay.remoting.rpc.RpcRemoting.invokeSync(RpcRemoting.java:186) ~[bolt-1.5.2.jar!/:?] at com.alipay.remoting.rpc.RpcClientRemoting.invokeSync(RpcClientRemoting.java:64) ~[bolt-1.5.2.jar!/:?] at com.alipay.remoting.rpc.RpcClient.invokeSync(RpcClient.java:355) ~[bolt-1.5.2.jar!/:?] at com.alipay.sofa.rpc.transport.bolt.BoltClientTransport.doInvokeSync(BoltClientTransport.java:275) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] at com.alipay.sofa.rpc.transport.bolt.BoltClientTransport.syncSend(BoltClientTransport.java:248) ~[sofa-rpc-all-5.6.0.jar!/:5.6.0] ... 140 more ``

    Your scenes

describe your use scenes (why need this feature)

Your advice

describe the advice or solution you'd like

Environment

ronglg commented 4 years ago

sofa boot版本不一致问题

OrezzerO commented 4 years ago

有几点需要了解下:

  1. 这个问题是必现吗?
  2. 看你用了 hystrix ,请求的超时情况如何, 这个错误是发起请求之后固定时间重现的吗?
ronglg commented 4 years ago

有几点需要了解下:

  1. 这个问题是必现吗?
  2. 看你用了 hystrix ,请求的超时情况如何, 这个错误是发起请求之后固定时间重现的吗?

这个问题是必现的 请求报文过多时,这个错误只要发起请求,就会抛出ConnectionClosedException异常 目前已经做的排查:

  1. 直接请求接口响应时间时间40ms
  2. 拿到请求报文后,在后端直接调用rpc rest协议接口,提交无异常
OrezzerO commented 4 years ago

拿到请求报文后,在后端直接调用rpc rest协议接口,提交无异常

没理解这句话, 是说没有超时问题吗?

可以查下链路上 MTU 设置是否有问题.

ronglg commented 4 years ago

拿到请求报文后,在后端直接调用rpc rest协议接口,提交无异常

上面这句话的意思是, 我把服务器上报错的请求报文拷贝下来,在本机用postman进行接口调用,可以请求成功,这样是不是就可以排除rpc通信问题的可能性。

OrezzerO commented 4 years ago

@fightingDay 吃能排除服务端问题, 有可能是客户端问题. 不过你这种应该不是框架问题,而是外部环境可能有问题

rabbit1013 commented 2 years ago

我也有这个问题 sofa Boot 版本不一致,是指该服务和其他服务得sofaboot版本不一致么?