背景
最近在公司遇到這么一個問題:我在測試環境中搭建了一套RocketMQ,開發想要使用本機連接進行生產消費的測試,但是發現服務無法正常訪問,報如下錯誤:
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就可以了呢?
於是我查了下broker的配置文件,發現確實有兩個配置項可以做到:
brokerIP1:當前broker監聽的IP。
brokerIP2:broker為master-slave模式時,broker的從節點通過brokerIP2和主節點進行連接。
如下圖:我給broker配置brokerIP1為外網IP。
然后,重啟broker服務。
這時候本機再通過nameserver去連接broker進行生產消費,就不會報ip和端口無法連上的問題了。
博主:測試生財(一個不為996而996的測開碼農)
座右銘:專注測試開發與自動化運維,努力讀書思考寫作,為內卷的人生奠定財務自由。
內容范疇:技術提升,職場雜談,事業發展,閱讀寫作,投資理財,健康人生。
csdn:https://blog.csdn.net/ccgshigao
博客園:https://www.cnblogs.com/qa-freeroad/
51cto:https://blog.51cto.com/14900374
微信公眾號:測試生財(定期分享獨家內容和資源)