Skip to content

Latest commit

 

History

History
160 lines (120 loc) · 4.67 KB

部署文档.md

File metadata and controls

160 lines (120 loc) · 4.67 KB

AntColony部署文档

本地下载编译源码
服务器环境安装
  服务器配置
  安装nodejs
  安装pm2
  安装Redis
  安装Mongodb
  部署AntColony
运行
  修改配置文件
  创建必要的文件夹
  启动
问题
  pm2的版本
  多久有数据
  其他

##本地下载编译源码 这里要求本地已安装nodejs,grunt,git。
下载源码和依赖包:

git clone https://github.com/keenwon/antcolony
cd antcolony
npm install --development

使用grunt编译得到一份部署用的代码:

grunt

这样dist目录下就是用来部署的文件。

##服务器环境安装 ####服务器配置 下面的示例安装,是在一台VPS上执行的,配置如下:

  • Memory: 2G
  • Disk: 40G SSD
  • Processor: 2 Core
  • Image: Centos6.5 x64

####安装nodejs nodejs版本:0.10.31
我的安装过程参考这里

###安装pm2 pm2版本:0.10.7(最新版本,以代码方式启动不了) 这个版本的pm2在root用户下安装要指定额外的参数,如果非root用户不需要加--unsafe-perm

npm install pm2@0.10.7 -g --unsafe-perm

####安装Redis redis版本:2.8.13
我的安装过程参考这里
安装好之后设置密码:

redis-cli
CONFIG SET requirepass 123456

####安装Mongodb mongodb版本:2.6.4
我的安装过程参考这里 安装好之后创建新的数据库antcolony,并且设置用户名antcolony、密码123456

####部署AntColony 把前面的dist目录上传至服务器,安装依赖包:

npm install --production

因为要以代码的方式调用pm2,所以还要在当前目录安装,前面提到了root和非root用户参数不一样,所以没有列在依赖项中:

npm install pm2@0.10.7 --save --unsafe-perm

##运行 ####修改配置文件 运行之前先修改配置文件config.js

redisHost: '127.0.0.1',
redisPort: 6379,
redisAuth: '123456',

mongodbHost: '127.0.0.1',
mongodbPort: 27017,
mongodbDatabase: 'antcolony',
mongodbUserName: 'antcolony',
mongodbPassword: '123456',

启动worker之前,要先在config.js里面设置worker的相关参数。例如设置端口号是3000的worker:

worker: {
    3000: {
        sended: true, // 是否发送find_node
        cycle: 20 // 周期,每隔多少毫秒发送一次find_node
    }
}

####创建必要的文件夹 在AntColony的两个文件夹:log(日志)和.temp(临时存放种子文件):

mkdir log
mkdir .temp

####启动 启动端口号3000的worker:

node startup worker 3000

启动ID为1的male:

node startup male 1

启动ID为1的female:

node startup female 1

##问题 ####pm2的版本 第一次安装最新版本的pm2,执行后没有任何反应,排查一下没发现问题,安装回旧版本的就好了。
但是这次发现执行pm2 list,App name显示不正常,重装依然无效。但是在pm2 monit中的name显示是正常的。 pm2挺好用的,但是问题也不少,新版本应该有不少改进,但是最近没空去了解,如果你要新版本的pm2的话,可以用下面的方法启动AntColony:

pm2 start src/queen.js -f --name worker[3000] -- worker 3000
pm2 start src/queen.js -f --name worker[3001] -- worker 3001
pm2 start src/queen.js -f --name male[1] -- male 1
pm2 start src/queen.js -f --name female[1] -- female 1

上面启动了两个worker,一个male,一个female。

####多久有数据 这个不一定,和网络等都有关系。不过这次部署,很快就有数据了:

{
    "db" : "antcolony",
    "collections" : 3,
    "objects" : 74,
    "avgObjSize" : 676.7567567567568,
    "dataSize" : 50080,
    "storageSize" : 188416,
    "numExtents" : 5,
    "indexes" : 1,
    "indexSize" : 8176,
    "fileSize" : 67108864,
    "nsSizeMB" : 16,
    "dataFileVersion" : {
        "major" : 4,
        "minor" : 5
    },
    "extentFreeList" : {
        "num" : 0,
        "totalSize" : 0
    },
    "ok" : 1
}

####其他 有其他问题请新建issue交流。