为什么选择 Cluster NodeJS vs Docker,Einhorn 呢?
Why Cluster NodeJS vs Docker, And What About Einhorn?
我一直很喜欢使用 NodeJS create/compose 应用程序功能的便捷性。 NodeJS,对我来说,很简单。
在研究如何利用多核机器时(然后还要考虑端口特定应用程序的额外复杂性——比如 80/443 上的网络应用程序),我最初的解决方案着眼于 NodeJS Cluster(或其他东西)像 pm2),也许还有一个负载均衡器。
但我想知道 运行 多个容器(以解决多核情况)然后在它们之间进行负载平衡的缺点是什么(或者它不起作用的原因)各自的外部端口?过去,只使用 Einhorn 会更好还是...Einhorn 如何适应这幅图?
所以,问题是 - 仅适用于 NodeJS(因为我也在考虑 Go) - 我将 "clustering" 与 "multiple docker containers with load balancing" 作为利用多核的两种可能方式考虑是否正确?
作为一个单独的问题,Einhorn 是否只是另一种第三方方式来实现与 NodeJS 集群相同的功能(例如,它也可以用于负载平衡 Go 应用程序)?
Docker 开始承担越来越多我们过去独立处理的集群和负载平衡方面,无论是 directly 还是通过惯用的使用模式。以 NodeJS 为例,您可以在多个 NodeJS 容器之间使用一个 nginx 或 haproxy 容器进行负载均衡。我更喜欢使用 fig 之类的东西,并设置重启策略,以便容器自动重启。在大多数情况下,这消除了对其他集群解决方案的需求。
我一直很喜欢使用 NodeJS create/compose 应用程序功能的便捷性。 NodeJS,对我来说,很简单。
在研究如何利用多核机器时(然后还要考虑端口特定应用程序的额外复杂性——比如 80/443 上的网络应用程序),我最初的解决方案着眼于 NodeJS Cluster(或其他东西)像 pm2),也许还有一个负载均衡器。
但我想知道 运行 多个容器(以解决多核情况)然后在它们之间进行负载平衡的缺点是什么(或者它不起作用的原因)各自的外部端口?过去,只使用 Einhorn 会更好还是...Einhorn 如何适应这幅图?
所以,问题是 - 仅适用于 NodeJS(因为我也在考虑 Go) - 我将 "clustering" 与 "multiple docker containers with load balancing" 作为利用多核的两种可能方式考虑是否正确?
作为一个单独的问题,Einhorn 是否只是另一种第三方方式来实现与 NodeJS 集群相同的功能(例如,它也可以用于负载平衡 Go 应用程序)?
Docker 开始承担越来越多我们过去独立处理的集群和负载平衡方面,无论是 directly 还是通过惯用的使用模式。以 NodeJS 为例,您可以在多个 NodeJS 容器之间使用一个 nginx 或 haproxy 容器进行负载均衡。我更喜欢使用 fig 之类的东西,并设置重启策略,以便容器自动重启。在大多数情况下,这消除了对其他集群解决方案的需求。