一个节点内 deepstream.io 服务器的多个实例

Multiple instances of deepstream.io server inside one node

是否可以在一个节点(计算机)内 运行 deepstream.io 服务器的多个实例? 每个实例将监听不同的端口,存储在不同的存储中,等等。 用例是当一个实例用于生产而另一个用于暂存时 - 生产和暂存使用不同的 MongoDB 数据库进行存储。

当然可以,只要确保在启动时将它们指向两个不同的配置文件即可。以下是它的工作原理,例如AWS Linux:

安装 deepstream

sudo wget https://bintray.com/deepstreamio/rpm/rpm -O /etc/yum.repos.d/bintray-deepstreamio-rpm.repo
sudo yum install -y deepstream.io

复制权限文件和两个版本的配置文件

cp /etc/deepstream/config.yml config-dev.yml
cp /etc/deepstream/config.yml config-prod.yml
cp /etc/deepstream/permissions.yml permissions.yml

更改配置文件中的端口(以及您需要的任何其他内容)

然后从

开始
 deepstream start -c config-dev.yml
 deepstream start -c config-prod.yml

导致

为了在同一台机器上更好地处理多个深度流进程 运行ning,我建议使用像 PM2

这样的工具

它是基于节点的,因此您可以通过

在 AWS 上安装它
 curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
 sudo yum -y install nodejs
 sudo npm install -g pm2 

现在你可以运行多个不同配置的进程如下

pm2 start --name ds-dev deepstream -- start -c ~/config-dev.yml
pm2 start --name ds-prod deepstream -- start -c ~/config-prod.yml

导致

PM2 允许您使用它们的 ID 轻松启动/结束/重新启动/监控各个进程,例如pm2 stop 0 并跟踪您的日志、重新启动进程等...