-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Pomelo命令行工具使用
命令行工具pomelo是Pomelo框架提供的一个小工具,该工具能够帮助开发者更便捷、更有效率地进行应用开发。该工具包括的命令支持绝大多数的应用开发操作,包括创建初始项目、启动应用、停止应用、关闭应用等。用户可以通过pomelo --help命令查询相关命令及其使用说明。
当使用如下命令安装Pomelo的时候,pomelo会自动安装在相应的bin目录下:
$ npm install pomelo -g
目前pomelo支持如下命令及选项:
- init: 创建一个新项目,该项目中包含创建pomelo应用的基本文件及pomelo应用的简单示例。
- start: 启动应用及服务器。
- list: 列出当前应用开启的所有服务器的信息,包括服务器Id、服务器类型、pid、堆使用情况、启动时长。
- stop: 关闭应用及服务器或者停止指定的服务器。
- kill: 强制关闭应用及服务器。
- add: 运行时动态添加服务器。
- masterha: 当启用masterha高可用的时候,用来启动master服务器的slave节点。
- --version:列出当前使用pomelo的版本信息。
- --help:列出所有pomelo支持的命令及使用说明。
- init
根据给出的路径或文件名创建新项目,支持相对路径和绝对路径。默认情况下为当前路径,项目名称为当前文件夹名称,命令如下:
pomelo init [dirname]
在创建新项目时,需要选择新项目使用的与客户端通信时使用的connector,1 代表 Websocket(native socket), 2 代表socket.io。当当前目录下有同名文件夹存在时,会提示是否覆盖,还是取消创建。
- start
该命令用来启动Pomelo应用,命令格式如下:
pomelo start [-e,--env <env>] [-d,--directory <code directory>]
[-D,--daemon]
其中,-e 用来选择启动时使用的env,如production,development,stress-test等; -d 用来指定项目目录; -D 用来开启daemon模式启动,如果开启了daemon,那么进程将转入后台运行, 所有的日志将不再打印到console上,只能通过对应的日志文件查看日志。在0.7及以前的版本中,对于env的使用,没有使用-e选项,而是直接作为一个参数来使用的,这里需要注意一下。
用户可以在<project_dir>/game-server/config/servers.json中为不同的服务器中添加不同参数,这些参数是node和v8支持的参数,是用来指定和影响node及v8的行为的。例如,当我们想对某一个服务器开启调试的时候,就可以在服务器配置中,增加args配置项,并在args中配置开启调试的端口等,示例如下:
{"connector":[{"id":"connector-server-1", "host":"127.0.0.1", "port":4050,
"clientPort":3050, "args":"--debug=[port]"}]}
- list
当应用启动后,该命令列出所有服务器信息。由于当执行此操作时,pomelo是作为监控管理框架的一个客户端的,在连接注册到master上的时候,需要进行身份验证。默认生成的项目中,有一个默认的用户名admin,口令也为admin,因此在不指定用户名和口令的时候,默认使用的用户名和口令均为admin,下面的stop命令和kill命令均需要使用用户名和口令验证,默认值与此处相同。应用的管理用户可以通过修改config/adminUser.json文件进行配置,具体的配置格式可以参考pomelo init生成的项目中的相关配置。
执行本命令时,还需要指定master服务器的ip和port, 这样可以是的pomelo list可以在任意地方执行。pomelo stop/kill/add等也同样需要指定master服务器的ip和port,默认使用127.0.0.1:3005作为master服务器的地址。
命令格式如下:
pomelo list [-u,--username <username>] [-p,--password <password>]
[-h,--host <master-host>] [-P,--port <master-port>]
- stop
stop用来停止当前应用,优雅地关闭应用。和kill命令不同,这种关闭首先会切断客户端与服务器的连接,然后逐一关闭所有服务器。如果指定了服务器serverId的话,则会关闭特定的服务器,而不是关闭所有的服务器。与list命令一样,需要权限验证,默认的用户名和密码均为admin,也需要指定master服务器的位置, 跟pomelo list一样,默认使用127.0.0.1:3005。
命令格式如下:
pomelo stop [-u,--username <username>] [-p,--password <password>]
[-h,--host <master-host>] [-P,--port <master-port>]
[<serverIds>...]
- kill
该命令强制关闭应用。在本地进行应用开发过程中,如果遇到kill之后还有服务器进程没有关闭的情况,可以增加--force选项,强制关闭所有服务器进程。该操作相当地暴力,可能产生数据丢失等不好的影响,可以在开发调试时使用,不推荐在线上使用该命令。该命令同样也需要进行身份验证以及指定master服务器的位置,具体方式同list和stop。
该命令需在项目的根目录或game-server下使用,命令格式如下:
pomelo kill [-u,--username <username>] [-p,--password <password>]
[-h,--host <master-host>] [-P,--port <master-port>]
[-f,--force]
- add
该命令用来运行时动态增加服务器,与pomelo list等命令类似,pomelo add也需要身份验证以及指定master服务器的地址。具体命令格式如下:
pomelo add [-u,--username <username>] [-p,--password <password>]
[-h,--host <master-host>] [-P,--port <master-port>]
[<server-args>...]
args参数是用来指定新增服务器的参数的,包括服务器类型,服务器id等, 支持一次增加一台或多台同类型的服务器,例子如下:
pomelo add host=127.0.0.1 port=8000++ clientPort=9000++ frontend=true clusterCount=3 serverType=connector
pomelo add host=127.0.0.1 port=8000 clientPort=9000 frontend=true serverType=connector id=added-connector-server
- masterha
当启用了master服务器的高可用后,该命令用来启动master服务器的slave节点,需要在game-server/config目录下配置masterha.json。其他的命令行参数类似于pomelo start,格式如下:
pomelo masterha [-d,--direcotry <code directory>]
- 其他
查看当前Pomelo的版本时,可以使用如下命令:
pomelo --version
查看pomelo命令行工具的帮助时,可以使用如下命令:
pomelo --help
pomelo add --help
pomelo start --help
- 注:
一般来说在开发环境中,master服务器的地址会一直是127.0.0.1:3005,使用的管理用户的username和password直接使用默认的admin即可,这样的话,开发调试时,在执行具体的pomelo命令的时候,maser服务器的地址信息以及管理用户信息都可以省略。