2014-09-29 85 views
1

我在互聯網上沒有找到任何適當的答案給我的問題。所以,我在這裏問。 這是我的情況: 我正在構建一個Android應用程序,Android客戶端需要通過Java-sql服務器(在同一端口上)進行通信。我創建了客戶端和服務器端,但我想知道爲了讓服務器能夠處理數千個客戶端,我應該採取什麼組件?比如說2000個客戶。 服務器的高帶寬足以實現我的目標嗎? (連接數=服務器帶寬/客戶端平均帶寬)。 或客戶端和服務器的帶寬,CPU和RAM之間的組合是必要的?Android客戶端 - Java服務器:一臺服務器可以同時支持多少個客戶端?

我將不勝感激任何幫助。

最好的問候,

+1

這樣的問題沒有簡單的答案。這取決於服務器軟件的實施情況,硬件配置如CPU數量,核心數量,RAM以及其他許多事情。此外,它取決於您的客戶端/服務器軟件在每個連接上的具體情況,如果連接是像SSH一樣的持久連接或更像HTTP一樣的臨時連接。你的問題是無法正確回答的。 – Mjoellnir 2014-09-29 10:45:40

回答

1

ServerSocket Docs Says:The maximum queue length for incoming connection indications (a request to connect) is set to 50. If a connection indication arrives when the queue is full, the connection is refused.

最大。根據處理時間的不同,每次客戶端數量會有所不同,但更多的CPU + RAM在服務器端總是有幫助的,但代碼在服務器端也應該是最優的。

高帶寬服務器只會幫助您向/從客戶端收發數據,但處理時間也很重要(CPU + RAM + CODE)。

也看看這個SO Post談論同樣的問題。

編輯:

正如Mjoellnir說:「此外,這取決於每個連接的正是你的客戶機/服務器的軟件做什麼,如果連接是像SSH或多個臨時喜歡用持久連接HTTP「,你也應該考慮這個particulat情況。

+0

這是關於僅對傳入連接進行反應。這只是問題的一個方面。 – Mjoellnir 2014-09-29 10:49:44