原文:大数据时代下的SQL Server第三方负载均衡方案----Moebius测试

一.本文所涉及的内容(Contents)

  1. 本文所涉及的内容(Contents)
  2. 背景(Contexts)
  3. 架构原理(Architecture)
  4. 测试环境(Environment)
  5. 安装Moebius(Install)
  6. Moebius测试(Testing)
    1. 负载均衡测试(Load Balancing Testing)
    2. 高可用性测试(Failover Testing)
    3. 数据安全性测试(Security Testing)
  7. 总结(Summary)

二.背景(Contexts)

  前几天在SQL Server MVP宋大侠(宋沄剑)的一篇文章"数据库集群技术漫谈”中看到了格瑞趋势在SQL Server上的负载均衡产品Moebius,搞数据库的都知道:在Oracle上有RAC,MySQL也有对应的方案(可参考:MySQL搭建Amoeba系列),而SQL Server上直到SQL Server 2012版本的AlwaysOn到来,微软都没有提供一个负载均衡方案,我从宋大侠那里找来一个Moebius的测试版本进行一下测试,下面是我测试的过程。

三.架构原理(Architecture)

(Figure1:Moebius for SQL Server逻辑架构图)

四.测试环境(Environment)

    操作系统:Windows Server 2008 R2

    数据库版本:SQL Server 2012

    服务器A:10.0.0.1

    服务器B:10.0.0.2

    虚拟IP:10.0.0.15

五.安装Moebius(Install)

  Moebius的安装非常简便,在装有SQL Server引擎的服务器上直接点击安装包进行安装,安装过程中一直下一步即可。在此就不再多说。

  在此交待一下我的测试环境,是两台虚拟机,IP分别为10.0.0.1和10.0.0.2,操作系统和SQL Server的版本分别为Windows Server 2012和SQL Server 2012。安装完成后在Management Studio管理工具中右击数据库,在弹出菜单中即可找到Moebius的菜单,如Figure2所示。

(Figure2:Moebius for SQL Server 2012)

  安装完成后,打开配置管理器界面,如Figure3所示。

(Figure3:Moebius for SQL Server 2012)

  分别将10.0.0.1和10.0.0.2这两台服务器加入集群,这里可以注意到,Moebius是以数据库为粒度的,相比实例而言,该种粒度会更加灵活,如Figure4所示。

(Figure4:设置数据库)

  将10.0.0.1和10.0.0.2两台服务器的数据库分别加入集群后,建立虚拟IP和端口,建立的虚拟IP为10.0.0.15,端口为5000,之后所有前端应用的连接就可以通过该虚拟IP进行了,完全不需要理会后端的架构,可以让前端与后端解耦,如Figure5和Figure6所示。

(Figure5:设置虚拟IP)

(Figure6:设置连接属性)

  建立完成后,集群就配置好了,效果如Figure7所示。

(Figure7:Moebius for SQL Server 2012)

六.Moebius测试(Testing)

(一).负载均衡测试(Load Balancing Testing)

  集群的搭建完成后,就可以开始对集群进行测试。首先是负载均衡测试。负载均衡的测试办法是使用压力测试工具,然后分别查看两个实例的Profiler,根据我咨询宋沄剑的说法是,负载均衡的算法是默认根据两台服务器的过去一段时间采集的性能指标进行分析,优先将查询导到负载低的服务器中,但集群刚搭建的时候没有历史数据,则按照平均分配的原则。下面是我使用SQLQueryStress进行负载均衡测试的结果,如Figure8所示。我开了100个线程,每个线程循环10次,来进行一个非常简单的查询。

(Figure8:SQLQueryStress压力测试)

  得到的结果如Figure9、Figure10所示,从图可以看到:负载基本被平均分配到两台服务器(由于测试工具每个查询都会附上Set Statistics IO On和Time On,因此负载应该为100个线程*10次循环*2)。

(Figure9:Profiler跟踪信息)

(Figure10:Profiler跟踪信息)

  由Figure9、Figure10大概可以看出:负载基本被平均分配到集群中的两台服务器中。

(二).高可用性测试(Failover Testing)

  接下来就是测试高可用性。高可用的测试我主要集中于故障转移切换的速度。首先,我开100个线程,每个线程循环20次,在集群上运行负载均衡,如Figure11所示。

(Figure11:SQLQueryStress)

  Figure11大概执行了20秒,此时我再次执行,并在执行过程中,强制关闭集群中10.0.0.1的SQL Server服务,运行结果如Figure12所示。

(Figure12:SQLQueryStress)

  我们看到,已经发送到到10.0.0.1服务器的部分事务给前端应用程序提示失败并回滚,除去停止服务所花的时间,以及所有的查询由10.0.0.1和10.0.0.2负载均衡执行,到仅仅只剩下10.0.0.2单独执行所花的时间,故障转移的切换时间在10秒以内,这个速度已经和SQL Server的镜像几乎持平了。

  此时,再来看Moebius集群管理器,就发现10.0.0.1服务器已经被集群脱机,且虚拟IP已经漂移到了10.0.0.2,如Figure13所示。

(Figure13:Moebius for SQL Server 2012)

(三).数据安全性测试(Security Testing)

  在Figure13描述的情况之后,此时只有10.0.0.2一台服务器处于活的状态 ,因为Moebius采用的是Share-Nothing架构,因此应该可以利用冗余数据防止数据丢失,从而保证了数据安全。此时我在10.0.0.2上新建立一张表Demo。并重新启动10.0.0.1的数据库服务,在Moebius中重新联机,如Figure14、Figure15所示。

(Figure14:Moebius for SQL Server 2012)

(Figure15:Moebius for SQL Server 2012)

  在联机的过程中,有一个恢复差异数据的步骤,联机完成后我们来看10.0.0.1数据库,Demo表已经咋恢复差异数据的时候被自动同步了,如Figure16所示。

(Figure16:Demo表)

七.小结(Summary)

  通过上面对Moebius的简单测试来看,Moebius的确实现了对SQL Server的负载均衡、高可用以及保证数据的安全。对于国内能够有公司实现类似Oracle RAC这样的负载均衡方案还是让我非常惊讶的,如果该结果在复杂的数据库环境下依然能够保持同样的结果,那么这个方案对于使用SQL Server的大公司来说价值就非常大了,有机会我再进行复杂一些的测试。

  Tips:我刚刚拿到微软的MVP,在此感谢:宋沄剑、林勇桦、黄钊吉3位MVP大牛的帮助和鼓励。

大数据时代下的SQL Server第三方负载均衡方案----Moebius测试相关推荐

  1. 大数据时代下房地产市场变革,微构房产大数据信息化应用简析

    导读 大数据是看待市场的全新角度,将极大的改变土地.工程.营销.售后.物业等房地产企业经营运作的所有流程.本文从房企市场.数据类型.数据价值.应用场景等方面简要分析大数据时代下的房企应用. 随着房地产 ...

  2. 独家 | Michael I.Jordan:大数据时代下的安全实时决策堆栈与增强学习(视频+精华笔记)

    金秋九月,2017国际大数据产业技术创新高峰论坛暨大数据系统软件国家工程实验室第一次会议盛大开幕,大数据系统软件国家工程实验室作为大数据系统软件技术研发与工程化的国家级创新平台,将通过大数据系统软件技 ...

  3. 柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航)...

    柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航) 二.起航 本章节,柯南君将从几个层面,用官网例子讲解一下RabbitMQ的实操经典程序案例,让大家重 ...

  4. 在大数据时代下金融风控的分类

    @Date:2018-05-24 @Author:等等 依托城市数据湖海量数据资源,尤其是在信贷领域对企业或者个人的个人信贷画像描述评判准则已经是第三方房贷企业或者银行对借贷人的评分标准.风控建模以数 ...

  5. Thinking in BigData(二)大数据时代下的变革

    大数据时代的思维变革 A Revolution That Will Transform How We Live, Work, and Think. 不期而遇的一本<大数据时代>将我引进大数 ...

  6. 爱肤宝医生产品负责人王照陆:大数据时代下的人工智能医疗

    嘉宾介绍 王照陆:爱肤宝医生产品负责人.前华为研发工程师,CSDN博客专家,同济大学MBA,负责过医疗智能硬件血压.血糖.体脂等产品设计与数据分析:现负责皮肤医疗大数据产品,从0-1实现皮肤轻问诊预约 ...

  7. 精华 | 恩墨学院侯圣文:大数据时代下的 DBA 该何去何从?

    嘉宾演讲视频 Guest Video 温馨提示: 本视频时长57分02秒,建议在 WIFI 下观看. 第七届数据技术嘉年华于 2017年11月17日-18日在北京丽都皇冠假日酒店胜利召开,全国各地技术 ...

  8. 本地差分隐私 随机响应_大数据时代下的隐私保护

    本文作者程越强.孙茗珅.韦韬 1 引言 在大数据的时代,越来越多的服务和产品是围绕用户数据(隐私)建立的.这样虽然带来了个性化的服务,提高了服务质量和精度,但是在数据收集.使用以及公布的过程中,用户隐 ...

  9. 隐私保护与隐私计算研讨会 | 余维仁:大数据时代下需要各界更新对个人隐私保护的固有认识

    8月13日下午,由深圳市信息服务业区块链协会.陀螺研究院.矩阵元主办,中国生物识别与计算机视觉科技创新产业联盟.金砖国家未来网络研究院中国分院.中国船舶综合技术经济研究院.深圳市人工智能产业协会.深圳 ...

  10. 看大数据时代下的IT架构(1)图片服务器之演进史

            柯南君的公司最近产品即将上线,由于产品业务对图片的需求与日俱增,花样百出,与此同时,在大数据时代,大流量的冲击下,对图片服务器的压力可想而知,那么今天,柯南君结合互联网的相关热文,加上 ...

最新文章

  1. Linux查看CPU和内存使用情况详解
  2. 添加绿色版UltraEdit到右键菜单
  3. 在Html中使用Requirejs进行模块化开发
  4. META http-equiv=X-UA-Compatible content=IE=EmulateIE7
  5. Python: 反方向迭代一个序列
  6. 机器学习,总是不得其法,问题出在哪里?
  7. Intel® QAT 助力Nginx压缩处理
  8. 外卖侠使用教程加体验地址
  9. Android 反编译Apk修改资源文件并重新打包
  10. Qt实战笔记-从零开始搭建一套库存管理系统-(一)准备工作
  11. C# | 批量将CAD图幅网格外扩生成新图框(附源代码下载)
  12. Windows用户账户控制详解
  13. 桌面计算机打开无响应,在win7系统中桌面无响应的几种解决方法
  14. xm-select getValue()获取不到值的解决方法
  15. IDEMIA携手Unisys为澳大利亚内政事务部提供生物识别服务
  16. Matplotlib 画图如何取消图边框
  17. maximo邮件配置
  18. 一个获取电脑显示器序列号的VBS脚本
  19. led护眼台灯对眼睛好?过来人说说led护眼灯是否真的能护眼
  20. 无线传感器网络(WSN)在各个领域的应用分析

热门文章

  1. 在个人隐私方面做得比Google好的搜索引擎——DuckDuckGo
  2. PCB多层板层的设置原则
  3. php 外包 上海,== | php外包与php技术服务商
  4. Facebook的新算法可以预测出你的贫富阶级
  5. 使用DDE传输数据至SQL Server
  6. 百钱买百鸡问题,Python编程解决
  7. 杜兰大学计算机专业,杜兰大学计算机专业
  8. 解决IE兼容性试图模式下,jQuery.min.js的“JSON”未定义
  9. atikmpag.sys 导致蓝屏
  10. linux 分卷压缩及解压缩