2011-06-17 92 views
0

我需要创建多节点Web服务器,它将允许实时控制节点数量并更改进程UID和GUID。nodeJS多节点Web服务器

例如,在启动服务器启动5个工人并将他们推入工作人员池中。 当服务器获得新请求时,它将搜索空闲工作人员,如果需要则设置UID或GUID,并向其提供处理请求。如果没有空闲的工作人员,服务器将创建一个新的,设置GUID或UID,并将其推入池中等等。

你能告诉我它是如何实现的吗?
我试过这个例子http://nodejs.ru/385但它不允许控制工人的数量,所以我决定必须有其他的解决方案,但我找不到它。

如果你有一些例子或链接可以帮助我解决这个问题,请写信给我。

+0

你知道nodejs有异步的evented IO权限吗?它是专门构建的,所以你不需要每个请求的进程。每个请求使用一个进程都是低效的,并且会使您的服务器变慢。如果你想要的话,那么不要使用nodejs。 – Raynos 2011-06-17 12:09:37

回答

0

我不认为集群将做给你。 你想要的是每个请求使用一个进程。 请记住,这可能是非常低效的,并且节点旨在解决这些类型的工作进程,但是如果您确实必须这样做,那么您必须执行此操作。另一方面,节点非常擅长处理进程,所以你需要保留一个进程池,这很容易通过使用节点内部的child_process.spawn API来完成。

此外,您需要一种方法让您与工作进程进行通信。 我建议打开一个unix域套接字并发送客户端连接文件描述符,以便您可以将该连接委托给新工作者。

此外,您将需要处理的边缘情况下对超时等

+0

每个包含节点的请求模型的一个进程只是简单的愚蠢。不要这样做。 – Raynos 2011-06-17 12:08:59

+0

我最近做了很多负载测试。我可以说Node.js处理数百或数千个请求的效率非常高。但是,不建议使用套接字,因为它表现出一些性能问题。 – murvinlai 2011-06-17 22:52:52