pomelo-cn icon indicating copy to clipboard operation
pomelo-cn copied to clipboard

如何将服务部署到不同的机器上

Open jh1982yc opened this issue 11 years ago • 18 comments

pomelo不是分布式的,为什么例子都是在一台机器上运行的,如何在多个机器上分布运行不同的服务啊。配置是怎样的,需要将代码拷贝到每个机器上吗,这些机器的操作系统必须是一样的吗,怎样将这些服务全部启动?

jh1982yc avatar Oct 16 '13 07:10 jh1982yc

我不是很了解,但是理论上应该是要将代码拷贝到不同听机器上,可以试着用Puppet部署。 /game-server/config/server.json 这个是配置服务端口的。

phodal avatar Oct 16 '13 11:10 phodal

代码在每台机器中所在位置要相同,另外需要注意master.json和servers.json中全部使用具体ip进行配置。

py8765 avatar Oct 17 '13 01:10 py8765

有没有实际使用过的啊,听说要用到ssh agent forwarding

jh1982yc avatar Oct 26 '13 07:10 jh1982yc

这个好像不用吧,记得开放端口就 行了

phodal avatar Oct 26 '13 08:10 phodal

一个大型游戏不可能就放在一台机器上吧,几百万人不把它挤爆了。

jh1982yc avatar Oct 26 '13 08:10 jh1982yc

不是很了解,不过,感觉就是这个服务器连上那个服务器的端口应该就行了。。

phodal avatar Oct 26 '13 09:10 phodal

在实际应用中,游戏会分成许多模块,放在不同的机器上。 而服务端代码都写在一起,如何将这些代码部署到成千上万台机器上,协同工作。

jh1982yc avatar Oct 26 '13 09:10 jh1982yc

理解一下server.json代码写得很通俗易懂吧。

phodal avatar Oct 26 '13 09:10 phodal

看网上的资料说,把代码拷贝到每台机器上,设置每台机器的ssh agent forwarding,然后在一台主机上启动app,这样就可以将所有机器的服务都启动了。但是具体细节我不太懂,还有一些问题也不明白,比如这些机器的系统是否要一样,放代码的位置是否要一样,主机是如何知道这个位置的等。

jh1982yc avatar Oct 26 '13 09:10 jh1982yc

提一个简单问题吧,如何将lordofpomelo的聊天服务部署到另一台机器上。

jh1982yc avatar Oct 26 '13 09:10 jh1982yc

"development":{ "connector":[ {"id":"connector-server-1", "host":"127.0.0.1", "port":4050, "clientPort": 3050, "frontend": true}, {"id":"connector-server-2", "host":"127.0.0.1", "port":4051, "clientPort": 3051, "frontend": true}, {"id":"connector-server-3", "host":"127.0.0.1", "port":4052, "clientPort": 3052, "frontend": true} ], "chat":[ {"id":"chat-server-1", "host":"127.0.0.1", "port":6050}, {"id":"chat-server-2", "host":"127.0.0.1", "port":6051}, {"id":"chat-server-3", "host":"127.0.0.1", "port":6052} ], "gate":[ {"id": "gate-server-1", "host": "127.0.0.1", "clientPort": 3014, "frontend": true} ] }, 以connector为例。有服务器1,这是的IP是127.0.0.1,你可以对应为你的服务器的IP,比如192.168.0.1 后面开放的端口, 那么server-2,比如说你的服务器的IP是192.168.0.2改为这样子就行了,POMELO会均衡负载。。。只改你的HOST的那个地址就可以了,不过不同的服务器开放的端口号要和server.json一致。

phodal avatar Oct 26 '13 09:10 phodal

代码要分别复制到两台机器上,并分别启动app吗?

jh1982yc avatar Oct 26 '13 09:10 jh1982yc

嗯。。。对啊。

phodal avatar Oct 26 '13 09:10 phodal

那个,我有100台机器,重启一下服务器很累啊,有没有快捷启动和管理方法啊?

jh1982yc avatar Oct 26 '13 09:10 jh1982yc

puppet好像可以。。不是很了解的样子,

phodal avatar Oct 26 '13 09:10 phodal

好,谢谢了,我先了解一下puppet吧。 看来还是要实际的做一个产品出来才知道具体细节。 你们有没有做出正在运营的产品啊,我正在做一款网络游戏,下个月就要开始部署了,到时不懂再问你们吧。

jh1982yc avatar Oct 26 '13 09:10 jh1982yc

额,我也属于用户。。。

phodal avatar Oct 26 '13 12:10 phodal

所有机器上代码的位置要保持一致,注意master.json和servers.json中的host全部配置为具体ip地址,另外保证master到其它服务器无验证登录。

py8765 avatar Oct 28 '13 01:10 py8765