我正在为我的应用程序遵循微服务架构。
我有7个微服务,很少在节点上运行,还有一些是在python上运行的。2微型服务有多个实例(即以集群模式运行)。
所有的微服务都由PM2管理。
现在,我正在逐个升级服务的节点版本。不管我在互联网上看到了什么,它都说我只能在叉子模式下使用两个版本。如何在集群模式的两个不同版本上运行pm2服务
我不想使用负载平衡器或码头。
发布于 2022-08-07 08:56:36
您可以使用nvm来管理您需要的不同的节点版本,然后在启动节点应用程序时,执行以下操作:
sudo pm2 start app.js --interpreter=/home/user/.nvm/v4.4.2/bin/node自然地,根据您的情况替换节点nvm路径。
用于安装nvm:https://github.com/nvm-sh/nvm#installing-and-updating
一旦安装到安装节点版本:
// Install last 16.x
nvm install 16
// Spécific version
nvm install 16.14.2
// List installed
nvm list更新
如果--interpreter在集群模式下不可用,您可以试试这个技巧。
1 - localize pm2 binary with ``which pm2`` command
2 - Change directory to the pm2 binary directory: ``cd /path/to/pm2``
3 - make a copy of pm2 binary: ``cp pm2 pm2-node-xx`` replace xx with node version you want
4 - verify that copied binary have executable flag, if not make a ``chmod +x`` on it
5 - edit the copied binary file an on first line modify the shebang. Replace ``#!/usr/bin/env node`` by ``#!/home/ubuntu/.nvm/versions/node/v13.14.0/bin node``一旦完成,您应该使用另一个节点版本获得一个新的pm2二进制文件。您将能够使用pm2-node-xx start app.js启动节点脚本。
您将运行两个pm2守护进程,每个节点版本一个。您可以为所需的所有节点版本复制此菜谱。
https://stackoverflow.com/questions/73138485
复制相似问题