apache / dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.
https://dubbo.apache.org/
Apache License 2.0
40.49k stars 26.43k forks source link

nacos restart ,The consumer cannot call the producer #13598

Closed jnlzw closed 7 months ago

jnlzw commented 10 months ago

1、use java1.8

  1. use dubbo 2.7.12
  2. use nacos cluster which have 3 node
  3. use grpc as protocol when nacos node restart。The consumer failed to call the producer. Continue to report errors until the producer or consumer restarts
org.apache.dubbo.rpc.RpcException: Failed to invoke the method queryAllDevices in the service io.grpc.pns.usercentermanager.user.DubboQueryUserDeviceServiceGrpc$IQueryUserDeviceService. Tried 3 times of the providers [10.244.5.140:20880, 10.244.235.166:20880] (2/2) from the registry oversea-pub-nacos-hs.default:8848 on the consumer 10.244.74.152 using the dubbo version 2.7.12. Last error is: Failed to invoke remote service: interface io.grpc.pns.usercentermanager.user.DubboQueryUserDeviceServiceGrpc$IQueryUserDeviceService, method: queryAllDevices, cause: UNAVAILABLE: Channel shutdown invoked
    at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:110)
    at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:265)
    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:93)
    at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:170)
    at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:96)
    at org.apache.dubbo.common.bytecode.proxy2.queryAllDevices(proxy2.java)
    at com.myhexin.mobileweb.pns.gms.dispatcher.deploy.process.impl.PopulateEventMsgDevicesServiceImpl.queryDevices(PopulateEventMsgDevicesServiceImpl.java:155)
    at com.myhexin.mobileweb.pns.gms.dispatcher.deploy.process.impl.PopulateEventMsgDevicesServiceImpl.processData(PopulateEventMsgDevicesServiceImpl.java:79)
    at com.myhexin.mobileweb.pns.gms.dispatcher.deploy.process.impl.PopulateEventMsgDevicesServiceImpl.lambda$processData$0(PopulateEventMsgDevicesServiceImpl.java:62)
    at java.util.HashMap.forEach(HashMap.java:1289)
    at com.myhexin.mobileweb.pns.gms.dispatcher.deploy.process.impl.PopulateEventMsgDevicesServiceImpl.processData(PopulateEventMsgDevicesServiceImpl.java:60)
    at com.myhexin.mobileweb.pns.gms.dispatcher.deploy.task.impl.EventMsgTaskServiceImpl.doTask(EventMsgTaskServiceImpl.java:50)
    at com.myhexin.mobileweb.pns.gms.dispatcher.deploy.receiver.service.impl.ConsumeEventMsgServiceImpl.lambda$consumeMsg$0(ConsumeEventMsgServiceImpl.java:38)
    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: io.grpc.StatusRuntimeException: UNAVAILABLE: Channel shutdown invoked
    at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:271)
    at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:252)
    at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:165)
    at io.grpc.pns.usercentermanager.user.QueryUserDeviceServiceGrpc$QueryUserDeviceServiceBlockingStub.queryAllDevices(QueryUserDeviceServiceGrpc.java:262)
    at io.grpc.pns.usercentermanager.user.DubboQueryUserDeviceServiceGrpc$DubboQueryUserDeviceServiceStub.queryAllDevices(DubboQueryUserDeviceServiceGrpc.java:47)
    at org.apache.dubbo.common.bytecode.Wrapper2.invokeMethod(Wrapper2.java)
    at org.apache.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:47)
    at org.apache.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:84)
    at org.apache.dubbo.rpc.protocol.grpc.GrpcInvoker.doInvoke(GrpcInvoker.java:51)
    at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:173)
    at org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker.invoke(AsyncToSyncInvoker.java:52)
    at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78)
    at com.myhexin.b2cweb.boot.dubbo.PrometheusMonitorFilter.invoke(PrometheusMonitorFilter.java:25)
    at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
    at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:91)
    at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
    at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52)
    at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
    at org.apache.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:69)
    at org.apache.dubbo.rpc.protocol.FilterNode.invoke(FilterNode.java:61)
    at org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)
    at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:79)
    ... 17 common frames omitted
AlbumenJ commented 10 months ago

Please try to upgrade to the latest version and try use triple protocol.

AlbumenJ commented 7 months ago

No news is good news. Please feel free to create a new issue if you have any question.