【问题标题】:run nodejs application with pm2 or in docker containers?使用 pm2 或在 docker 容器中运行 nodejs 应用程序?
【发布时间】:2019-02-16 04:24:43
【问题描述】:

用 N 个实例运行 N 个 docker 容器还是 pm2 更好?从资源利用率(cpu/内存)的角度来看,哪种方法更有效?

更新:我不问如何在 docker 容器中使用 pm2 运行 node.js 应用程序。如果我们谈论单实例服务器、在多个 docker 容器中运行应用程序或使用 pm2 在多个线程中运行应用程序,我想了解什么是更好的设置。

【问题讨论】:

  • 这取决于很多不同的因素。一个容器化应用程序,另一个在单个非容器化上下文中管理进程。如果 CPU/内存是您唯一关心的问题,我显然希望 PM2 会获胜,因为它没有容器化开销,但我也不认为您应该将差异归结为 CPU/内存。
  • 并且可以说,您可以使用 pm2 运行 N 个 docker 容器,或者使用 pm2 运行一个 docker 容器,同时运行 N 个实例。 :D
  • @DavidMaze 请仔细阅读。如果我的问题包含pm2docker container 字样,那么这并不意味着我想在另一个里面运行一个。

标签: node.js docker pm2


【解决方案1】:

有不同的方法可以实现这一点,我会使用像 Nginx 这样的负载均衡器,无论你决定在本地运行 Docker 容器还是系统服务,看看这些文章:

  1. Nginx + Docker:https://auth0.com/blog/load-balancing-nodejs-applications-with-nginx-and-docker/

  2. Nginx + 系统: https://nodesource.com/blog/running-your-node-js-app-with-systemd-part-1/ https://nodesource.com/blog/running-your-node-js-app-with-systemd-part-2/

第一部分解释如何将您的应用配置为 systemd 服务,第二部分解释如何启动多个进程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 2015-05-13
    • 2020-09-30
    相关资源
    最近更新 更多