最近在公司遇到這麼一個問題:我在測試環境中搭建了一套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
在碼農的苦悶歲月裏,期待咱們一塊兒成長,歡迎關注,感謝拍磚!