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,问题解决~
网友评论