我有一个运行Node.js的api服务器正在使用它的集群模块,测试看起来非常好.现在我们的IT部门想要转向使用我很高兴的Docker容器,但除了玩游戏外我从未真正使用它.但我有一个想法,Node.js应用程序在单个Docker进程中运行,因此集群模块实际上并不是最好的,因为单个Docker进程可能是设置的慢点,直到请求在该进程中被拆分由集群模块.
那么运行能够在运行中启动和停止它们的Docker容器集群比使用Node.js的集群模块更正确吗?
如果我有一个容器集群,那么使用Node.js的集群模块能得到什么吗?api端点返回的时间少于0.5秒(通常相当少).
我正在使用MySQL(相信它是单个服务器,目前没有更多),因此不应该有任何理由使用数据完整性解决方案.
Pet*_*ons 16
你必须要测量才能确定,但我的预感是运行节点的集群模块是值得的.它会以最少的额外开销为您提供更多的CPU利用率.没有额外的容器需要管理(启动,停止,监控).此外,集群工作人员拥有有效的沟通机制.在我看来,最合理的进化(不要跳过步骤):
tio*_*mno 13
我认为使用Docker时最好的解决方案是尽可能减少每个容器的进程数,因为容器很轻; 您不希望进程尝试使用多个CPU.因此,在容器中运行群集不会添加任何值,并且可能会导致更糟糕的延迟.
在这里https://medium.com/@CodeAndBiscuits/understanding-nodejs-clustering-in-docker-land-64ce2306afef#.9x6j3b8vw Chad Robinson一般性地解释了这个想法.
Kubernetes,Rancher,Mesos和其他容器管理层处理负载平衡.它们提供"调度"(在不同的CPU和机器周围移动这些Docker容器片以在集群中获得良好的使用)和内部的"网络"(对这些容器的入站请求负载平衡)层.
更新
我认为值得添加链接为什么建议在容器中只运行一个进程?人们分享他们的想法和经历,但主要来自Jon,有一些有趣的观点:
只要您对容器承担单一责任(单个流程,功能或关注):好主意Docker将此命名为"关注";)
| 归档时间: |
|
| 查看次数: |
7776 次 |
| 最近记录: |