dubbo多网卡时,服务提供者的错误IP注册到注册中心导致消费端连接不上

使用了虚拟机之后,启动了dubbo服务提供者应用,又连了正式环境的注册中心;

一旦dubbo获取的ip错误后, 这种情况即使提供者服务停掉,目前dubbo没有能力清除这类错误的提供者;

(需要修改源码测试,需要客户端重新更细包,因为清除动作client端,我司就是这么干的)

 规避方案:

  1. 线上最好直接把(连接注册中心的)做ip限制,VPN拨上的IP过滤掉;
  2. 团队人员行为控制;
  3. 拨VPN又需要调试dubbo提供者的应用时,指定DUBBO服务IP的主机绑定;

发现这种情况的解决方法:

  1. 到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

猜你喜欢

转载自www.cnblogs.com/zhjh256/p/10072925.html