Можно ли запустить несколько экземпляров сервера deepstream.io внутри одного узла (компьютера)? Каждый экземпляр будет прослушивать разные порты, хранить в разных хранилищах и т. д. Вариант использования — когда один экземпляр используется для производства, а другой — для подготовки — производство и подготовка используют разные базы данных MongoDB для хранения.
Несколько экземпляров сервера deepstream.io внутри одного узла
Ответы (1)
Безусловно, просто убедитесь, что при запуске они указывают на два разных файла конфигурации. Вот как это будет работать, например. АВС Линукс:
Установить дипстрим
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
в результате чего
Чтобы лучше обрабатывать несколько процессов Deepstream, запущенных на одном компьютере, я бы рекомендовал использовать такой инструмент, как 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 позволяет легко запускать/завершать/перезапускать/контролировать отдельные процессы, используя их идентификаторы, например pm2 stop 0
и отслеживает ваши журналы, перезапускает процессы и т. д.