這個問題是關於設計決策的。我目前正在開發一個網絡項目,該項目將有4萬用戶,並且在幾個月內預計將增長5千萬用戶(儘管不是併發用戶)。我想要有一個可以輕鬆擴展而不需要太多努力的架構。設計決策 - 擴展基於Web的應用程序的體系結構
爲了解釋,我想使用一個微不足道的場景。比方說,用戶實體和服務,如CreateUser,AuthenticateUser等,是頁面控制器的簡單方法調用。但是,一旦流量增加,例如,認證用戶(或與用戶實體相關的這類服務)必須被移出到不同的內部服務器以傳播負載。但是同時在用戶數爲40K時通過網絡使用RPC調用會變得過度。
我的建議是最初使用IPC,當我們需要擴展時,我們可以間接切換到基於TCP的RPC調用,以便它可以輕鬆擴展。例如,我指的是System.IO.Pipes.NamedPipeStreamServer
開頭,稍後再轉到TcpListener
。
如果我們有適當的設計可以封裝上述方法,那麼我們很容易將服務擴展到多個網絡服務器,但同時避免在用戶數較少時進行網絡調用。
這是最好的方法嗎?任何建議都會很棒..
注意:數據庫縮放定義爲第二階段優化,因此我們已經制定了適當的架構設計,以便在流量增加時輕鬆分區數據。主要的瓶頸將是這段時間內的應用程序服務器。