weibocom / motan

A cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services.
Other
5.9k stars 1.78k forks source link

motan在docker环境中使用,config配置需要指定host吗,这个host是docker的还是外部物理机的ip呢? #570

Open zhang1025 opened 7 years ago

zhang1025 commented 7 years ago

<motan:basicService export="demoMotan:8002" group="motan-demo-rpc" accessLog="false" shareChannel="true" module="motan-demo-rpc" host=“ip” application="myMotanDemo" registry="registry" id="serviceBasicConfig"/>

hebo1982 commented 7 years ago

这个ip需要client能连接上的。 看你在哪儿用了, 如果都是在docker的网络内就用docker的虚拟ip, 如果外部也要用则需要用主机ip,docker也要用宿主机ip开放端口转发出来。

zhang1025 commented 7 years ago

感谢,motan-server 和 motan-client都是在docker中,这样的话<motan:basicService 还有必要写host参数吗

zhang1025 commented 7 years ago

@rayzhang0603

rayzhang0603 commented 7 years ago

@zhang1025 ananas-hebo说的非常正确,host是为了让client可以调通,你可以在具体的docker环境中测试一下使用什么ip可以telnet连上server就行。 除了配置xml中的host可以指定注册ip外,也可以通过配置docker内的hostname来指定注册ip。

mogu1986 commented 6 years ago

docker run -it --rm --hostname=game --add-host=game:18.135.119.143 harbor.jq.cn/library/game_server:69

然后看/etc/hosts [root@game /]# more /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 18.135.119.143 game 172.17.44.4 game

下面一条被覆盖了,实际还是读的容器IP,也就是说HOSTNAME方式不行,@rayzhang0603是怎么指定的?

rayzhang0603 commented 6 years ago

@mogu1986 可以考虑docker run 运行某个启动脚本,在脚本中进行设置。