Dubbo服务注册到Zookeeper上的IP与本机IP不一致

1、问题描述

如图,本地在内网的ip为172.27.43.8,但是服务注册到了zk上后,ip变成了本地的ip:192.168.68.2


1.jpg

2.jpg

2、原因解析
发布服务到远程zk,dubbo是调用ServiceConfig.doExportUrlsFor1Protocol方法,
在doExportUrlsFor1Protocol方法中,通过以下两步获取到host和port两个值。


3.png

服务注册到zk上所用的ip,正是这个host,这个findConfigedHosts方法,入参就包括protocolConfig。
因此我们猜想,修改protocolConfig中的host配置,是不是就可以改变服务注册到zk上所显示的ip?

3、解决方法
在dubbo的xml配置文件中,配置protocol属性如下:
<dubbo:protocol name="dubbo" id="dubbo" host="172.27.43.8"/>
将host改为本地的ip后,重新尝试将服务注册到zk,发现zk上的ip已经变为我们所配置的host,问题解决~

4.jpg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。