1、服务器多网卡绑定,导致服务起来后程序自己选择的ip不对。
2、提供服务的机器开启了vpn。
3、dubbo配置文件中写死了host。
以下为转载:转自http://www.ithao123.cn/content-7471097.html
使用了VPN,启动了dubbo服务提供者应用,又连了正式环境的注册中心;
一旦dubbo获取的ip错误后(拨了vpn 本机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 |