我有一个node.js网络应用程序,使用nginx和pm2在我的amazon aws服务器上运行。应用程序处理用户的文件,这是使用作业系统和子进程完成的。简而言之,当应用程序从pm2开始时,我为服务器的每个cpu核心创建一个子进程。然后,每个子进程(worker)从作业队列中完成作业。
我的问题是,我可以在docker中复制它,还是需要以某种方式修改它。我有一个假设是我需要为数据库创建一个容器,为应用程序创建一个容器,然后为多个工作容器创建处理,这样如果一个崩溃,我就会启动另一个工作。
我一直在网上做研究,包括一个让我了解这个问题的udemy课程,但我没有遇到过一个我可以与我的问题/问题联系起来的例子。
非常感谢任何帮助,阅读材料或建议。
答案 0 :(得分:0)
容器以与主机操作系统相同的性能级别运行。没有流程性能受到打击。我创建了a whitepaper with Docker and HPE on this。
您不会使用pm2或nodemon,它们用于启动节点应用程序的多个进程,如果失败则重新启动它们。这就是Docker现在的工作。
如果在Swarm中,您只需将服务的副本数增加到与您希望在群中同时运行的CPU /线程数相似。
我没有在我的node-docker-good-defaults中提到针对Swarm的nodemon / pm2事件,因此我将更新它作为一个问题。