bugCats commented on issue #6827:
URL: https://github.com/apache/rocketmq/issues/6827#issuecomment-1566802634

   **补充一下**,我把2个从机停止了,并且使用内网IP调用,同样出现此类问题。
   2台服务器分别部署a0、b0,
   | - | IP| proxy端口 | 
   |---|---|---|
   |a0| 172.17.88.54| 15872|
   |b0| 172.17.88.57| 15852 | 
   
   
   但是客户端调用时,仍然返回
   <pre>
       ......
        {
             "acceptMessageTypes": [
                  "NORMAL"
             ],
             "broker": {
                  "endpoints": {
                       "addresses": [
                            {
                                 "address": "172.17.88.57:15872",
                                 "host": "172.17.88.57",
                                 "port": 15872
                            }
                       ],
                       "facade": "ipv4:172.17.88.57:15872",
                       "grpcTarget": "ipv4:172.17.88.57:15872",
                       "scheme": "IPv4"
                  },
                  "id": 0,
                  "name": "broker-b"
             },
             "permission": "READ_WRITE",
             "queueId": 31,
             "topic": "standardQueue",
             "topicResource": {
                  "name": "standardQueue",
                  "namespace": ""
             }
        },
        {
             "acceptMessageTypes": [
                  "NORMAL"
             ],
             "broker": {
                  "endpoints": {
                       "addresses": [
                            {
                                 "address": "172.17.88.54:15872",
                                 "host": "172.17.88.54",
                                 "port": 15872
                            }
                       ],
                       "facade": "ipv4:172.17.88.54:15872",
                       "grpcTarget": "ipv4:172.17.88.54:15872",
                       "scheme": "IPv4"
                  },
                  "id": 0,
                  "name": "broker-a"
             },
             "permission": "READ_WRITE",
             "queueId": 0,
             "topic": "standardQueue",
             "topicResource": {
                  "name": "standardQueue",
                  "namespace": ""
             }
        },  
       ......
   </pre>
   
   <br>
   
   
这会导致`org.apache.rocketmq.client.java.impl.consumer.SimpleConsumerImpl#receive0`在挑选服务端IP端口时,获取到错误的地址:
   <pre>
           final ListenableFuture<SubscriptionLoadBalancer> routeFuture = 
getSubscriptionLoadBalancer(topic);
           final ListenableFuture<ReceiveMessageResult> future0 = 
Futures.transformAsync(routeFuture, result -> {
               final MessageQueueImpl mq = result.takeMessageQueue(); // 
result.messageQueues 会挑选到错误的proxy IP端口
               final ReceiveMessageRequest request = 
wrapReceiveMessageRequest(maxMessageNum, mq, filterExpression,
                   invisibleDuration, awaitDuration);
               return receiveMessage(request, mq, awaitDuration);
           }, MoreExecutors.directExecutor());   
   </pre>
   
   客户端控制会疯狂打印`finishConnect(..) failed: Connection refused: /172.17.88.57:15872`
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to