【Dubbo】org.apache.dubbo.remoting.RemotingException: message can not send, because channel is closed

5 篇文章 0 订阅
3 篇文章 0 订阅

记一笔,莫名其妙出现了报错,排查了半天,终于解决了,结果真是有些无语。

报错日志

org.apache.dubbo.rpc.RpcException: Failed to invoke the method selectAllDeploySinkGteUpdateTime in the service com.cw.metagross.common.service.TranslatorConfigService. Tried 3 times of the providers [0:0:0:0:0:0:0:1:20881] (1/1) from the registry 10.0.10.44:8848 on the consumer 10.0.2.62 using the dubbo version 2.7.8. Last error is: Failed to invoke remote method: selectAllDeploySinkGteUpdateTime, provider: dubbo://0:0:0:0:0:0:0:1:20881/com.cw.metagross.common.service.TranslatorConfigService?anyhost=true&application=data-reorg&category=providers&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&init=false&interface=com.cw.metagross.common.service.TranslatorConfigService&metadata-type=remote&methods=selectAllDeploySinkGteUpdateTime,selectAllGteUpdateTime&path=com.cw.metagross.common.service.TranslatorConfigService&pid=85207&protocol=dubbo&qos.accept.foreign.ip=false&qos.enable=false&register.ip=10.0.2.62&release=2.7.8&remote.application=webapp&side=consumer&sticky=false&timestamp=1661323514659, cause: message can not send, because channel is closed . url:dubbo://0:0:0:0:0:0:0:1:20881/com.cw.metagross.common.service.TranslatorConfigService?anyhost=true&application=data-reorg&category=providers&check=false&codec=dubbo&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&heartbeat=60000&init=false&interface=com.cw.metagross.common.service.TranslatorConfigService&metadata-type=remote&methods=selectAllDeploySinkGteUpdateTime,selectAllGteUpdateTime&path=com.cw.metagross.common.service.TranslatorConfigService&pid=85207&protocol=dubbo&qos.accept.foreign.ip=false&qos.enable=false&register.ip=10.0.2.62&release=2.7.8&remote.application=webapp&side=consumer&sticky=false&timestamp=1661323514659
	at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:113)
	at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:260)
	at org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor.intercept(ClusterInterceptor.java:47)
	at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$InterceptorInvokerNode.invoke(AbstractCluster.java:92)
	at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:88)
	at org.apache.dubbo.rpc.cluster.support.registry.ZoneAwareClusterInvoker.doInvoke(ZoneAwareClusterInvoker.java:103)
	at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:260)
	at org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor.intercept(ClusterInterceptor.java:47)
	at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$InterceptorInvokerNode.invoke(AbstractCluster.java:92)
	at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:74)
	at org.apache.dubbo.common.bytecode.proxy0.selectAllDeploySinkGteUpdateTime(proxy0.java)
	at com.cw.metagross.datareorg.scheduling.SinkConfigScheduler.scheduling(SinkConfigScheduler.java:60)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
	at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.dubbo.remoting.RemotingException: message can not send, because channel is closed . url:dubbo://0:0:0:0:0:0:0:1:20881/com.cw.metagross.common.service.TranslatorConfigService?anyhost=true&application=data-reorg&category=providers&check=false&codec=dubbo&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&heartbeat=60000&init=false&interface=com.cw.metagross.common.service.TranslatorConfigService&metadata-type=remote&methods=selectAllDeploySinkGteUpdateTime,selectAllGteUpdateTime&path=com.cw.metagross.common.service.TranslatorConfigService&pid=85207&protocol=dubbo&qos.accept.foreign.ip=false&qos.enable=false&register.ip=10.0.2.62&release=2.7.8&remote.application=webapp&side=consumer&sticky=false&timestamp=1661323514659
	at org.apache.dubbo.remoting.transport.AbstractClient.send(AbstractClient.java:176)
	at org.apache.dubbo.remoting.transport.AbstractPeer.send(AbstractPeer.java:53)
	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeChannel.request(HeaderExchangeChannel.java:135)
	at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient.request(HeaderExchangeClient.java:95)
	at org.apache.dubbo.rpc.protocol.dubbo.ReferenceCountExchangeClient.request(ReferenceCountExchangeClient.java:91)
	at org.apache.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:105)
	at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:163)
	at org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker.invoke(AsyncToSyncInvoker.java:52)
	at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78)
	at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:89)
	at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
	at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:51)
	at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
	at org.apache.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:69)
	at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
	at org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)
	at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82)
	... 25 more

解决方案

1.排查Nacos服务列表中,provider和consumer是否正常注册。未注册,说明你的nacos server或者client的配置有问题
2.检查一下自己有没有开代理。我是打开了Clashx, 它把我的本地网络代理掉了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
org.apache.dubbo.remoting.RemotingException是一个Dubbo框架提供的远程通信异常类。当在Dubbo服务之间进行远程通信时,如果出现通信中断、连接超时或其他网络相关问题,就会抛出该异常。通常,该异常会提供一些详细的错误信息,以便排查和解决问题。 要解决这个异常,你可以检查以下几个方面: 1. 网络连接是否正常:确保Dubbo服务之间的网络连接正常,并且没有任何阻塞或中断情况。可以通过检查防火墙设置、网络配置等来确认网络连接是否正常。 2. 服务提供者是否可用:确保Dubbo服务提供者正常运行并可访问。可以检查服务提供者的日志和运行状态,以确定是否存在问题。 3. 服务消费者配置是否正确:确认Dubbo服务消费者的配置是否正确,包括注册中心地址、服务接口等信息。可以检查消费者端的配置文件或代码,确保与提供者的配置一致。 4. Dubbo版本兼容性:确保Dubbo版本在服务提供者和消费者之间是兼容的。不同的Dubbo版本可能会有不同的协议和序列化方式,如果版本不兼容可能会导致通信异常。 5. 日志和错误信息:查看Dubbo服务提供者和消费者的日志,检查是否有其他错误信息或异常堆栈,以便更好地定位问题并解决。 以上是一些常见的排查步骤,希望对你解决该异常有所帮助。如果问题仍然存在,请提供更多的错误信息和具体情况,以便更好地帮助你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值