2015-09-22 105 views
0

我的團隊正在開發基於推送通知的基於Android和ios的實時聊天應用程序的java套接字編程。適用於Android和ios的Java套接字編程聊天室

我們已經在代碼上做了很多工作並構建了它。但是在縮放應用程序之前,有幾個值得回答的問題。

1)基於Java的套接字編程是否可以爲十億用戶提供擴展?是製作聊天應用程序的最佳方式嗎?

2)聊天室可以處理多少個郵件?可以添加大約500-1000個參與者嗎?

3)這一切都取決於物理服務器(性能)和什麼是費用?

如果您事先知道任何人的答案和謝謝,請幫忙。

回答

1

套接字只是一個系統,用於在客戶端與服務器之間移動數據。

單個S.O.的套接字數量有一些限制。可以處理,但可以在不同節點之間進行縮放。 Java可以做到這一點沒有問題。

如果您選擇正確的體系結構並水平擴展,則同時處理數百萬併發用戶和千位用戶也可能沒有問題。

最大的瓶頸在於網絡速度,因爲處理數百萬條消息可能會阻止您的網絡。所以在物理上這個問題通常不是CPU,而是網絡吞吐量。

要對多少同時連接一個想法,一臺服務器可以處理讀這article

2011年的WhatsApp實現百萬建立的TCP會話中 單一機器上的內存和CPU,以備用。在2012年,推動 到超過200萬tcp連接。在2013 WhatsApp的啾啾出:在 12月31日,我們有了一個新紀錄的一天:7B封郵件入境,11B的出站封郵件在一天處理 = 18十億總的消息! 2013年的快樂!

+0

謝謝你的回答,但是網絡吞吐量可以通過大型服務器進行管理/縮放嗎?我估計需要什麼樣的服務器數量,如果你能猜到的話,總體成本是多少? ....對我來說非常有幫助.. – android12

+0

不,您只能移動較少的數據或在不同節點之間分配數據。例如,爲了減少聊天服務器的網絡流量,像Whatsapp這樣的高級聊天系統使用不同的服務器來處理圖像共享和聊天。如此密集的網絡流量不會減慢您的聊天。 –

+0

什麼是估計我不需要服務器的大小,如果你能猜到的話,會有什麼樣的總體成本......對我來說這將是非常有幫助的。 – android12