有趣实验 .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下数据库的负载均衡

文章插图

推荐阅读