2011-06-17 108 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