有趣實驗 .NET下數據庫的負載均衡( 二 )


class Program{static void Main(string[] args){string NameList = "";//第一次訪問數據庫var SLB = (new StudentLB()) as DeveloperSharp.Structure.Model.DataLayer;var db = new Entities(SLB.IDA.ConnectionString);//每次會根據配置的負載均衡策略輸出對應的ConnectionStringt_Student Stu = db.t_Student.Where(t => t.Id == 3).FirstOrDefault();NameList += Stu.Name;//第二次訪問數據庫SLB = (new StudentLB()) as DeveloperSharp.Structure.Model.DataLayer;db = new Entities(SLB.IDA.ConnectionString);//每次會根據配置的負載均衡策略輸出對應的ConnectionStringStu = db.t_Student.Where(t => t.Id == 3).FirstOrDefault();NameList += Stu.Name;//第三次訪問數據庫SLB = (new StudentLB()) as DeveloperSharp.Structure.Model.DataLayer;db = new Entities(SLB.IDA.ConnectionString);//每次會根據配置的負載均衡策略輸出對應的ConnectionStringStu = db.t_Student.Where(t => t.Id == 3).FirstOrDefault();NameList += Stu.Name;//輸出Console.WriteLine(NameList);Console.ReadLine();}}從以上示例代碼我們可以清晰的得知:其實數據庫鏈接字符串ConnectionString就是實現負載均衡的關鍵所在 。而SLB.IDA.ConnectionString則每次會根據配置的負載均衡策略輸出對應的鏈接字符串 。
示例程序輸出顯示結果如下:
周云周云1周云2
最后提示一點:若要把一組數據庫的負載均衡應用改為單數據庫應用,只需要把ds.xml配置文件中DatabaseCluster節點下的Database節點數量設置為一個即可實現 。所以,聰明的你以后可以把你所有的數據庫訪問代碼改為本文樣式:)
總結
本文技術點思路梳理:

  1. 創建用來實施負載均衡的一組數據庫 。
  2. 通過ds.xml來配置負載均衡策略 。
  3. 在App.config/Web.config中添加鏈接ds.xml的appSettings節點 。
  4. 創建基于DeveloperSharp包的“負載均衡器”類(本篇為:StudentLB類) 。
  5. 通過“負載均衡器”產生的ConnectionString鏈接數據庫 。
【附注】:文章開頭給出的下載示例,均已成功運行通過 。但有些輔助內容需要自己建立/設置(比如:數據庫創建、鏈接字符串設置、文件配置、路徑設置、參數設定、等等...) 。調式時若遇異常報錯,請仔細閱讀+理解本文 。技術交流/支持 , 請微信掃描二維碼,備注“進群”!
有趣實驗 .NET下數據庫的負載均衡

文章插圖

推薦閱讀