2014-11-21 58 views
1

我試圖設計出有針對性的用戶在3lac移動聊天應用中使用Java套接字實時聊天應用程序,我已經看到了相關的XMPP服務器和客戶端的方式,Node.js的文章與socket.io,但混亂將擴大這麼多的用戶。是好實現移動平臺

可以這樣用Java套接字API如此多的用戶也可以實現。相比之下,與有關的語言,和解決方案的設計開發人員的技能的時候

+0

實現語言不如設計重要 – 2014-11-21 10:31:52

+0

您可以在這篇文章的末尾提供一些鏈接,我可以研究如何給出設計方法 – Prakash 2014-11-21 10:43:06

回答

2

實現語言對解決方案的可擴展性的影響很小。

在聊天程序上工作時,兩個主要的擴展挑戰是1)C10K problem和2)在社交圖中縮放實時通知,即O(numPeople*numPeopleSubscribedToPerson*numDevicesPerPerson*rateOfInteractions)

研究facebook,twitter和gmail的設計將幫助您理解擴展消息增長速度以及如何建模網絡解決方案的問題(提示:使用推/長輪詢web技術並優先考慮阻止異步解決方案同步的是要走的路)。

此鏈接是一個好的開始How does facebook, gmail send the real time notification?和Varnish記錄他們的解決方案的C10K問題here

至於Java的接去,他們都很好。但是常見的問題是線程處理。避免爲每個套接字分配一個線程。這將根據一些因素(包括操作系統配置),在大約1-10k用戶遇到擴展問題。使用Java時,請使用Java NIO並確保線程使用率不會隨着登錄到服務器的用戶數量而增長。

像node.js的語言的優點是,他們主張從一開始,在那裏好異步技術是晚在Java世界遊戲這些最佳做法。但他們確實存在。

+0

我會通過您的鏈接,非常感謝您的幫助,我會疑惑我是否仍然困惑 – Prakash 2014-11-21 12:10:15