GitHub user pxd98 added a comment to the discussion: QuickStart Demo ERROR: 
Task was cancelled.

是不是因为你的broker在windows机器上跑的。
producer或者proxy发送消息的步骤简单可以分为两步,第一步是去nameserver获取这个topic的路由信息,第二步是往路由信息中拿到的broker地址直接发送。这个broker的地址在不设置的情况下是这里代码
 
(remoting/src/main/java/org/apache/rocketmq/remoting/common/RemotingUtil.java)实现的:
``` 
public static String getLocalAddress() {
        try {
            // Traversal Network interface to get the first non-loopback and 
non-private address
            Enumeration<NetworkInterface> enumeration = 
NetworkInterface.getNetworkInterfaces();
            ArrayList<String> ipv4Result = new ArrayList<String>();
            ArrayList<String> ipv6Result = new ArrayList<String>();
            while (enumeration.hasMoreElements()) {
                final NetworkInterface networkInterface = 
enumeration.nextElement();
                if (isBridge(networkInterface)) {
                    continue;
                }

                final Enumeration<InetAddress> en = 
networkInterface.getInetAddresses();
                while (en.hasMoreElements()) {
                    final InetAddress address = en.nextElement();
                    if (!address.isLoopbackAddress()) {
                        if (address instanceof Inet6Address) {
                            ipv6Result.add(normalizeHostAddress(address));
                        } else {
                            ipv4Result.add(normalizeHostAddress(address));
                        }
                    }
                }
            }

            // prefer ipv4
            if (!ipv4Result.isEmpty()) {
                for (String ip : ipv4Result) {
                    if (ip.startsWith("127.0") || ip.startsWith("192.168")) {
                        continue;
                    }

                    return ip;
                }

                return ipv4Result.get(ipv4Result.size() - 1);
            } else if (!ipv6Result.isEmpty()) {
                return ipv6Result.get(0);
            }
            //If failed to find,fall back to localhost
            final InetAddress localHost = InetAddress.getLocalHost();
            return normalizeHostAddress(localHost);
        } catch (Exception e) {
            log.error("Failed to obtain local address", e);
        }

        return null;
    }
```
这个在多网卡和windows机器上好像有点问题。所以建议你手动在broker.conf里设置brokerIP1,然后你在proxy的机器上telnet这个地址和broker的端口,只要能通应该就没问题了。
你要排查原因的话也可以,就是在proxy这里打印出来你的消息发送的broker地址,理论上你这个错误,那么这个地址是不通的。

GitHub link: 
https://github.com/apache/rocketmq/discussions/7528#discussioncomment-8783169

----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscr...@rocketmq.apache.org

Reply via email to