如果服务器是多网卡的,比如安装了docker,有一个docker虚拟网卡,一个实体网卡eth0,当我们运行springboot应用后,dubbo注入到zk的地址是 docker虚拟网卡的地址172网段,而不是实际内网地址192网段,导致远程服务调用失败!这个时候需要在启动命令加入指定网卡就可以解决这个问题。
java -jar ...
-Ddubbo.network.interface.preferred=eth0
-Ddubbo.provider.telnet=cd,clear,count,pwd,exit,invoke,log,ps,select,shutdown,status,trace,help,ls
...XXX.jar
下面的dubbo.provider.telnet是开启服务器telnet dubbo端口 允许ls 命令。方便查看发布的服务是否正常。 服务器网卡可以通过 ifconfig命令查看。可以看到一张docker0网卡和一个eth0网卡。
当SpringBoot应用运行在多网卡服务器上,Dubbo服务注册到Zookeeper的地址是Docker虚拟网卡的172网段地址,导致远程调用失败。为解决此问题,可以在启动命令中指定使用eth0网卡,如`-Ddubbo.network.interface.preferred=eth0`,同时,`dubbo.provider.telnet`参数用于开启服务器的telnet端口以便检查服务状态。

3077





