技术文章 > 服务端 > pomelo 用户指南-分布式部署 

Pomelo 的分布式部署方法

Pomelo 的分布式部署方法和步骤,以LordOfPomelo为例:

1. 系统及应用软件环境搭建和配置

所有参与分布式部署的机器:

2. 全局安装 Pomelo,安装 lordofpomelo 依赖包

$ npm install pomelo -g
$ cd lordofpomelo
$ sh npm-install.sh
详细的步骤请参考安装 pomelo 和 LordOfPomelo-安装指南。

3. 修改 lordofpomelo 中相关配置文件

  1. 修改 "lordofpomelo/shared/config/mysql.json":将其中的 host 的地址修改为 MySql 所在机器的 IP 地址,注意: 不要填写 "127.0.0.1" 或者 "localhost"。具体的配置如下所示,大家可以根据实际情况修改对应配置项:
    {
    	"development": {
    	  "host" : "pomelo3.server.163.org",
    	  "port" : "3306",
    	  "database" : "Pomelo",
    	  "user" : "xy",
    	  "password" : "dev"
    	},
    	"production": {
    	  ...
    	}
    }
  2. 修改 "lordofpomelo/game-server/config/master.json":将其中的 host 的地址修改为 master 所在机器的IP 地址(即,将要在哪台机器上使用 pomelo start 来启动 game-server 服务器集群)。注意: 不要填写 "127.0.0.1" 或者 "localhost"。具体的配置如下所示,大家可以根据实际情况修改对应配置项:
    {
        "development":{
            "id": "master-server-1", "host": "pomelo16.server.163.org", "port": 3005
        },
        "production":
        {
            ...
        }  	
    }
  3. 修改 "lordofpomelo/game-server/config/servers.json":将其中的 host 的地址修改为相应服务进程所在机器的 IP 地址(即,将要在哪台机器上运行该服务进程)。注意:不要填写 "127.0.0.1" 或者 "localhost"。具体的配置如下所示, 大家可以根据实际情况修改对应配置项:
    {
    	"development": {
    		...
    		"area": [
    			{"id": "area-server-1", "host": "pomelo16.server.163.org", "port": 3250, "area": 1},
    			{"id": "area-server-2", "host": "pomelo18.server.163.org", "port": 3251, "area": 2},
    			{"id": "area-server-3", "host": "pomelo19.server.163.org", "port": 3252, "area": 3},
    			...
    		],
    		...
    		"gate": [
    			{"id": "gate-server-1", "host": "pomelo16.server.163.org", "clientPort": 3014, "frontend": true}
    		],
    		...
    	},
    	"production": {
    		...
    	}
    }
  4. 修改 "lordofpomelo/web-server/public/js/config/config.js":将其中的 GATE_HOST 和 GATE_PORT 修改为 game-server 的 gate 服务进程所在机器的 IP 地址和端口。注意:如果 web-server 与 game-server 的 gate 服务进程在同一台机器上则可将 GATE_HOST 配置为 window.location.hostname,否则配置相应的 IP,该配置应与 "lordofpomelo/game-server/config/servers.json" 中 gate 的配置相对应。具体的配置如下所示,大家可以根据实际情况修改对应配置项:
    ...
        IMAGE_URL: 'http://pomelo.netease.com/art/',
        GATE_HOST: 'pomelo16.server.163.org',
        GATE_PORT: 3014
    ...
上述步骤都完成后就可以在 master 所在机器(本文所示例的是 "pomelo16.server.163.org")的 lordofpomelo/game-server 目录下使用 pomelo start 命令启动 game-server 服务器集群,在 lordofpomelo/game-server 目录下使用 pomelo stop命令停止 game-server 服务器集群了。在另外一台机器(本文所示例的是 "pomelo17.server.163.org",当然也可以和上面的 master 在同一台机器上)的 lordofpomelo/web-server 目录下使用命令 node app.js 来启动 web-server,由于 web-server 是无状态的 web 服务器,可以通过 kill/Ctrl+c 来停止。

4. 说明

在分布式部署中,启动/停止各应用服务器的代码可以参考 lordofpomelo/game-server/node_modules/pomelo/lib/master/starter.js 中的 sshrun 函数相关部分。


来源:摘自 https://github.com/NetEase/pomelo/wiki/Pomelo%E7%9A%84%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%96%B9%E6%B3%95,本站 行痴 整理