gpt4 book ai didi

node.js - 如何制作分布式 node.js 应用程序?

转载 作者:IT老高 更新时间:2023-10-28 21:54:49 25 4
gpt4 key购买 nike

创建 node.js 应用程序非常简单。

var app = require('express')();
app.get('/',function(req,res){
res.send("Hello world!");
});

但是假设人们沉迷于您的 Hello World! 应用程序并耗尽了您的资源。如何在实践中扩大这个例子?我不明白,因为是的,您可以在不同的计算机上打开多个 node.js 实例 - 但是当有人访问 http://your_site.com/ 时它直接针对特定的机器、特定的端口、特定的 Node 进程。那怎么办?

最佳答案

有很多方法可以解决这个问题,但归结为两件事:

  1. 能够在每台服务器上使用更多内核
  2. 能够扩展到不止一台服务器。

Node 集群

对于第一个选项,您可以使用 node-cluster 或与第二个选项相同的解决方案。 node-cluster (http://nodejs.org/api/cluster.html) 本质上是一种将 Node 进程 fork 为一个主进程和多个工作进程的内置方式。通常,您需要 1 个 master 和 n-1 到 n 个 worker(n 是您的可用核心数)。

负载平衡器

第二种选择是使用负载均衡器,将请求分配给多个工作人员(在同一台服务器上,或跨服务器)。

在这里您也有多种选择。以下是一些:

还有一件事,一旦你开始让多个进程为请求提供服务,你就不能再使用内存来存储状态,你需要一个额外的服务来存储共享状态,Redis (http://redis.io) 是一个流行的选择,但是没有表示唯一的一个。

如果您使用 cloudfoundry、heroku 等服务,它们会为您设置好,因此您只需担心应用程序的逻辑(以及使用服务来处理共享状态)

关于node.js - 如何制作分布式 node.js 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15425647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com