dubbo服务注册时的一个坑

本地一个provider在启动时,会把本机ip和自己提供的接口,注册到dubbo的注册中心,一般都是zk。今天遇到了一个深坑,我机器的ip是A,注册换一个服务之后,在dubbo的admin观察,我这个接口的服务提供地址,ip居然是B,时间戳和我项目启动是一致的。

查了好久,发现是本地机器的/etc/hosts文件里面,本机域名和ip配置错了。。。。一个指向自己的vip地址,配成了B,估计是运维在搞机器的时候手误没有改掉。修正hosts文件后,问题解决。

深究下去,发现dubbo在启动时,获取本地ip,是用的InetAddress.getLocalHost,如果这个方法返回的ipOk,那么它就使用。理论上你在里面配成一个不存在以至于ping不同的机器,他都不会管的。。。。。而InetAddress.getLocalHost会读本地的hosts文件

查到了一个一样的情况,简直神坑

http://www.cnblogs.com/jizhao/p/4081675.html

刘摸鱼

退堂鼓表演艺术家

杭州