您好,欢迎访问一九零五行业门户网

SqlServer横向扩展负载均衡终极利器SqlServerProxy

一直以来,mysql因为开源,诞生了很多扩展方案,类似amoeba、atlas、cobar、mysqlproxy等,大都基于mysql通信协议来定制解决方案,让我们很羡慕嫉妒,但没办法,microsoft没有提供类似的方案,但现在,有了sqlserverproxy,为我们带来了曙光,可以基于我们自
     一直以来,mysql因为开源,诞生了很多扩展方案,类似amoeba、atlas、cobar、mysqlproxy等,大都基于mysql通信协议来定制解决方案,让我们很羡慕嫉妒,但没办法,microsoft没有提供类似的方案,但现在,有了sqlserverproxy,为我们带来了曙光,可以基于我们自己的要求来定制。
图1、 sqlserverproxy的基本部署架构
    sqlserverproxy的特性是最大化释放我们掌握的技能,只有根据业务需求定制的,才能够符合我们完美的期望。业务需求定制最关键的部分是请求分发,有的实时性要求高,有的低,一个大统一的解决方案未必能满足。sqlserverproxy有一个特性,提供了基于正则表达式匹配的请求分发实现,只需要修改配置文件,就能轻易满足。除此之外,还有其它一下特性。
    兼容性,对应用程序透明,不需要版本升级就兼容sql server 2000 到 sql server 2014的所有版本。
    内置命令,能方便查看sqlserverproxy历史、实时、单个客户端的通信量、请求数、事务数等。
    接口定制,默认提供基于正则表达式匹配的接口不够用等原因,可以实现特定接口,将自己的义务逻辑封装进去,最大化提升负载均衡的能力。
    兼容性很容易理解,内置命令是特定的sql语句,返回sqlserverproxy内部统计信息,例如在sqlserverproxy监听的端口上执行“select vt_active;”将返回下列列表列信息:
图2、内置查看活动会话的命令
    还提供了一个查看实时流量、请求数的内置命令,这个该是查看负载比较有用的命令。
图3、查看实时统计的命令
    接口定制,提供了5个可自定义的接口,但最关键的一个是决定请求分发的接口,在sqlserverproxy中,只要引用“akuma.contract.dll”程序集,实现里面的“islaveprovider”接口,再修改采用“microsoft.practices.unity”注入的配置文件“sqlserverproxy.exe.config”,就能专心的按照业务逻辑来最大化负载均衡能力了。
    详细方面,包括所有可用命令,可以下载sqlserverproxy后查看相关文档。
   不过,sqlserverproxy目前没有内置数据分片的功能,数据分片需要和特定业务相关,估计要特别定制才行(需要的话联系我)。
   还有就是,从图1也可以看出来,sqlserverproxy不做数据同步,数据同步需要依赖数据库复制等技术,但分担了主服务器的压力,应能加快数据同步的速度,达到准实时数据的水平。
   最新版对.net framework版本要求降到了.net 4,现在支持windows xp和windows server 2003了,详见安装文档。
   下载地址:http://www.projky.com/downloads/3a382709-d680-476c-853d-dc3af5c625de/sqlserverproxy.zip
   本文博客地址:http://www.cnblogs.com/projky/p/sqlserverproxy.html    邮箱:projky@126.com 希望大家多指教。
其它类似信息

推荐信息