我计划使用AWS EC2容器服务来托管公开REST API的Node.js + Express实例的自动扩展组。我已经看到多篇文章告诉我,我应该使用pm2
而不是forever.js
,以确保我的应用程序在崩溃时重新启动,我可以顺利重新加载应用程序等等。
但是,我对容器内pm2
应该使用什么配置感到有点困惑。由于这些实例将自动扩展,我是否仍应在"集群模式下运行流程管理器"?我想确保我能够充分利用我的实例,而且我似乎无法找到关于在这样的自动缩放环境中是否需要群集的任何明确答案(仅pm2
带有负载平衡器和缩放技术本身。)
答案 0 :(得分:1)
在任何情况下我都会使用systemd而不是pm2,因为它现在在大多数Linux发行版上都是本机的,并且实际上少了一步(使用pm2你仍需要使pm2守护进程成为服务)。
至于运行集群等,我认为这在很大程度上取决于你的Node应用程序在做什么。因此,我可能会部署不使用它的容器,作为容器而不是内部进行扩展,并暂时使用。这样可以使每个容器内的内容尽可能简单,并让EVS服务管理器完成其工作。
当大多数人使用群集模块时,他们会为每个CPU核心创建一个或两个工作者。假设一个容器正在与主机上的任何其他容器共享CPU内核,那么您似乎没有太多的额外复杂性。