最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

运维笔记admin14浏览0评论

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

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

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

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

但是假设人们开始沉迷于你的Hello World!应用程序并耗尽了你的资源。这个例子如何在实践中扩大规模?我不明白,因为是的,你可以在不同的计算机上打开几个node.js实例 - 但是当有人访问,它直接针对那个特定的机器,那个特定的端口,那个特定的节点进程。又怎样?

回答如下:

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

  1. 能够为每台服务器使用更多核心
  2. 能够扩展到超过一个服务器。

node-cluster

对于第一个选项,您可以使用node-cluster或与seconde选项相同的解决方案。 node-cluster(http://nodejs/api/cluster.html)本质上是一种内置的方法,可以将节点进程分成一个主服务器和多个工作服务器。通常,您需要1个master和n-1到n个worker(n是可用内核的数量)。

load balancers

第二种选择是使用负载均衡器,在多个工作者(在同一服务器上或服务器上)之间分配请求。

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

  • 基于节点的选项:Load balancing with node.js using http-proxy
  • nginx:Node.js + Nginx - What now?(使用多个upstream服务器)
  • apache :(我没有明确有用的链接,但是有效的选项)

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

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

发布评论

评论列表(0)

  1. 暂无评论