dubbo--主机绑定

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fangxinde/article/details/87262900

          在发布一个Dubbo服务的时候,会生成一个provider://192.168.19.56:20880,那么这个192.168.19.56是如何生成的呢?通过分析ServiceConfig.java的源码可以找到答案。可以发现,绑定主机的ip,是通过一层一层的判断,直到获取到合法的ip地址。

第一步:从配置文件中获取host,检验host是否合理,如果合理,则直接返回,反之,进行下一步的获取:

配置文件中的配置:

<dubbo:protocol name="dubbo" port="20880" host="192.168.11.12"/>
String host = protocolConfig.getHost();

第二步:获取本地的ip地址,检验是否合理,如果合理,则直接返回,反之进行下一步获取

host = InetAddress.getLocalHost().getHostAddress();

第三步:通过socket去连接对应的注册中心地址,连接成功后,再通过socket获取本地的ip地址,检验是否合理,如果合理,则直接返回。反之,进行下一步获取。

  host = socket.getLocalAddress().getHostAddress();

 第四步:遍历本地网卡,返回一个合理的ip地址

host = NetUtils.getLocalHost();

猜你喜欢

转载自blog.csdn.net/fangxinde/article/details/87262900