本文講述的資料庫讀寫分離的實作方式,是基于前述“資料庫的負載均衡”這篇文章的內容發展而來,請先對其閱讀參考,
在某些大型應用系統中,往往需要把資料庫的“讀操作”與“寫操作”分為兩個資料庫(甚至兩組資料庫)分開操作,以達到讀寫分離的目的,
要實作資料庫的讀寫分離,只需在前述“資料庫的負載均衡“這篇文章的內容上做兩點修改即可實作:
一是在DeveloperSharp.xml組態檔中設定兩個DatabaseCluster節點分別對應“讀資料庫”與“寫資料庫”,
二是建立兩個“負載均衡器”類分別對應“讀的DatabaseCluster節點”與“寫的DatabaseCluster節點”,
舉例如下,我們在資料庫服務器中創建一個BaseRead資料庫專門用作讀操作,然后再創建一個BaseWrite資料庫專門用作寫操作,隨后,我們的DeveloperSharp.xml組態檔則修改為如下:
<?xml version="1.0" encoding="utf-8" ?> <DeveloperSharp> <DatabaseClusterList> <DatabaseCluster Id="BRead"> <Database Id="A1" Enable="true" Weight="100" DatabaseType="SqlServer" ConnectionString="Server=localhost;Database=BaseRead;Uid=sa;Pwd=123"/> </DatabaseCluster> <DatabaseCluster Id="BWrite"> <Database Id="B1" Enable="true" Weight="100" DatabaseType="SqlServer" ConnectionString="Server=localhost;Database=BaseWrite;Uid=sa;Pwd=123"/> </DatabaseCluster> </DatabaseClusterList> </DeveloperSharp>
注意,其中兩個DatabaseCluster節點的Id屬性值分別為BRead與BWrite,
接著,我們再創建兩個“負載均衡器”類(Base4Read與Base4Write)分別對應BRead與BWrite,如下所示:
[DeveloperSharp.Structure.Model.LoadBalance.DataSourceCluster("BRead")] public class Base4Read : DeveloperSharp.Structure.Model.DataLayer { //類中沒有任何代碼 } [DeveloperSharp.Structure.Model.LoadBalance.DataSourceCluster("BWrite")] public class Base4Write : DeveloperSharp.Structure.Model.DataLayer { //類中沒有任何代碼 }
此后,我們只需在相關程式代碼中區分使用Base4Read與Base4Write這兩個類,即可靈活實作資料庫的讀寫分離,
推薦閱讀
- .NET中大型專案開發必備(1)–UUID全球通用唯一識別碼
- .NET中大型專案開發必備(2)–CORS跨域訪問
- .NET中大型專案開發必備(3)–資料庫的負載均衡
- .NET中大型專案開發必備(4)–資料庫的讀寫分離
- .NET中大型專案開發必備(5)–Web服務/WebApi的負載均衡
- .NET中大型專案開發必備(6)–IUtility工具介紹
- .NET中大型專案開發必備(7)–ORM資料庫訪問技術
- .NET中大型專案開發必備(8)–高效分頁
![]() | 如果文章對你有幫助,請點贊、收藏、關注(原創內容,歡迎轉載,轉載請注明出處) 有疑問想獲取專業技術支持?請掃描左側微信二維碼聯系作者 出處:https://www.cnblogs.com/DeveloperSharp/ 本文采用「CC BY 4.0」知識共享協議進行許可,轉載請注明作者及出處, |
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/415889.html
標籤:.NET技术

