最近在公司遇到这么一个问题:我在测试环境中搭建了一套RocketMQ,开发想要使用本机链接进行生产消费的测试,可是发现服务没法正常访问,报以下错误:html
send heart beat to broker error {"fields": {"underlayError":{"Op":"dial","Net":"tcp","Source":null,"Addr":{"IP":"10.13.10.29","Port":10911,"Zone":""},"Err":{}}}}网络
这个错误指的是本机向broker服务(10.13.10.29)发生心跳失败。开发尝试去telnet这个ip和端口,发现确实没法访问。而后我去云平台上查了一下这个broker机器,其ip为10.13.10.29,属于内网段ip,外界网络没法直接访问此ip。运维
因为这台broker机器已绑定了外网IP,那是否是给broker服务配置一下外网IP就能够了呢?tcp
因而我查了下broker的配置文件,发现确实有两个配置项能够作到:ide
brokerIP1:当前broker监听的IP。测试
brokerIP2:broker为master-slave模式时,broker的从节点经过brokerIP2和主节点进行链接。url
以下图:我给broker配置brokerIP1为外网IP。spa
而后,重启broker服务。.net
这时候本机再经过nameserver去链接broker进行生产消费,就不会报ip和端口没法连上的问题了。server
博主:测试生财(一个不为996而996的测开码农)
座右铭:专一测试开发与自动化运维,努力读书思考写做,为内卷的人生奠基财务自由。
内容范畴:技术提高,职场杂谈,事业发展,阅读写做,投资理财,健康人生。
csdn:https://blog.csdn.net/ccgshigao
博客园:https://www.cnblogs.com/qa-freeroad/
51cto:https://blog.51cto.com/14900374
在码农的苦闷岁月里,期待咱们一块儿成长,欢迎关注,感谢拍砖!