使用了虛擬機之后,啟動了dubbo服務提供者應用,又連了正式環境的注冊中心;
一旦dubbo獲取的ip錯誤后, 這種情況即使提供者服務停掉,目前dubbo沒有能力清除這類錯誤的提供者;
(需要修改源碼測試,需要客戶端重新更細包,因為清除動作client端,我司就是這么干的)
規避方案:
- 線上最好直接把(連接注冊中心的)做ip限制,VPN撥上的IP過濾掉;
- 團隊人員行為控制;
- 撥VPN又需要調試dubbo提供者的應用時,指定DUBBO服務IP的主機綁定;
發現這種情況的解決方法:
- 到dubbo管理后台,禁用錯誤的服務提供者;
Dubbo主機IP綁定說明:
缺省主機IP查找順序:
- 通過LocalHost.getLocalHost()獲取本機地址。
- 如果是127.*等loopback地址,則掃描各網卡,獲取網卡IP。
注冊的地址如果獲取不正確,比如需要注冊公網地址,可以:
1. 可以在/etc/hosts中加入:機器名 公網IP,比如:
test1 205.182.23.201 |
2. 在dubbo.xml中加入主機地址的配置:
<dubbo:protocol host="http://10.20.160.198/wiki/display/dubbo/205.182.23.201"> |
3. 或在dubbo.properties中加入主機地址的配置:
dubbo.protocol.host=205.182.23.201 |