2012-10-11 40 views
1

我用一條路線寫了一個快速應用程序。處理程序將傳入請求的主體保存到couchdb數據庫。如何控制節點express.js應用中排隊請求的最大數量?

我寫了一個C#客戶端應用程序,使用線程異步發送10000個小請求。某些請求失敗,並顯示此異常消息「由於目標計算機主動拒絕,無法建立連接」。

我想這是因爲節點進程達到最大數量的排隊連接。是對的嗎?

這個應用程序是一個概念證明,我不會在我的真實應用程序有這麼大的負載,但我想測試的限制,並瞭解它們是如何工作的。

我有兩個問題:

  • 有沒有辦法來控制排隊的請求的最大數量?我可以 將其設置爲「無限」嗎?如果不是,最大值是多少,爲什麼會有最大值?

  • 在我的節點應用程序中,有沒有一種方法可以讓我捕獲並記錄那些丟失的請求?在生產應用程序中,我想知道我的 服務器已達到最大請求數。

更多信息:

  • 我在Windows
  • 運行這個我已經試過app.listen(3001, 'localhost' 的,10000)設置backlog參數。同樣的結果。

回答

0

我認爲你正在尋找積壓的設置。默認值是511. http://nodejs.org/api/net.html#net_server_listen_port_host_backlog_listeninglistener

+0

我已經試過了。將它設置爲10000並沒有改變任何東西。 – Sylvain

+0

看看這個。 http://blog.caustik.com/2012/04/06/node-js-scalability-testing-with-ec2/文件句柄限制似乎也是一個問題。 –

+0

有趣...我在Windows上運行這個,下面的鏈接使它不清楚Windows上是否有這樣的限制。見http://stackoverflow.com/questions/729162/windows-equivalent-of-ulimit-n和http://stackoverflow.com/questions/870173/is-there-a-limit-on-number-of-open -files式窗口。我搜索了'最大套接字連接窗口'。我發現了有關Windows 7默認值(和最大值)爲65534的註冊表設置MaxUserPort的信息。我當然不會達到這一點。 – Sylvain