Tencent / TubeMQ

TubeMQ has been donated to the Apache Software Foundation and renamed to InLong, please visit the new Apache repository: https://github.com/apache/incubator-inlong
https://inlong.apache.org/
2.02k stars 388 forks source link

TubeMQ consumers configure the wrong standby masterIP and set it to the first,consumers will throw exceptions. #103

Closed Libeibei1990 closed 5 years ago

Libeibei1990 commented 5 years ago

TubeMQ consumers configure the wrong standby masterIP and set it to the first,consumers will throw exceptions. And then,consumers re-register successfully after 5min.

The reason for this problem is because consumers don‘t poll connection list if the connection times out.

[ERROR] [BaseMessageConsumer] Register to master failed. java.util.concurrent.TimeoutException at com.tencent.tubemq.corerpc.client.CallFuture.get(CallFuture.java:139) at com.tencent.tubemq.corerpc.netty.NettyClient.call(NettyClient.java:157) at com.tencent.tubemq.corerpc.RpcServiceFailoverInvoker.callMethod(RpcServiceFailoverInvoker.java:69) at com.tencent.tubemq.corerpc.AbstractServiceInvoker.invoke(AbstractServiceInvoker.java:57) at com.sun.proxy.$Proxy0.consumerRegisterC2M(Unknown Source) at com.tencent.tubemq.client.consumer.BaseMessageConsumer.startMasterAndBrokerThreads(BaseMessageConsumer.java:563) at com.tencent.tubemq.client.consumer.BaseMessageConsumer.completeSubscribe(BaseMessageConsumer.java:306) at com.tencent.tubemq.client.consumer.SimplePushMessageConsumer.completeSubscribe(SimplePushMessageConsumer.java:76)

gosonzhang commented 5 years ago

Thank you, you are right. When the request to the Master is abnormal, it need to try to poll other nodes, so that the client can quickly connect to the active node.