我們有它由下面的ASP.NET MVC3 Web應用程序:實現只讀/只寫數據庫服務器架構
- 網站(MVC3)
- 數據訪問服務(WCF + EF)
- 數據庫服務器(SQL Server 2008 R2中)
我們建議實施的架構下面的性能優勢:
- Web服務器集羣(網站+數據訪問服務)
- 它循環負載均衡
- 每個服務器在此集羣都有一個緩存(只讀)數據庫
- 我們有一組SP我們可以清楚地分爲兩類 - 閱讀SP和寫入SP
- 每個讀取SP將連接到緩存DB每個寫SP將連接到寫DB
- 數據庫服務器(S)與複製/鏡像
- 這是寫DB。
- 每當它改變,它propogates 所有的變化所有緩存數據塊
- 除此之外,它有複製/鏡像實現的,因此具有備份時,它的股價下跌。
這是非常粗略的想法,我不知道它會給我們的系統性能提升。
贊成它的論點是80%的時代,操作是隻讀的。他們可以在高速緩存DB(因爲配置爲只讀,它們更快)。其他20%可以在寫數據庫。
不過,我有以下問題:
- 只讀配置:我們能不能配置緩存的DB到只讀?由於寫DB將需要推動改變,只要它改變。
- 同步:所有這些複雜的網絡,確保一切都是同步的是多麼容易? 網絡延遲:以及如何使網絡開銷保持同步?
- 複雜性與維護:是否真的值得增加維護費用和增加系統的複雜性?