一直以来,MySQL因为开源,诞生了很多扩展方案,类似Amoeba、Atlas、Cobar、MySQLProxy等,大都基于MySQL通信协议来定制解决方案,让我们很羡慕嫉妒,但没办法,Microsoft没有提供类似的方案,但现在,有了SqlServerProxy,为我们带来了曙光,可以基于我们自己的要求来定制。

图1、 SqlServerProxy的基本部署架构

SqlServerProxy的特性是最大化释放我们掌握的技能,只有根据业务需求定制的,才能够符合我们完美的期望。业务需求定制最关键的部分是请求分发,有的实时性要求高,有的低,一个大统一的解决方案未必能满足。SqlServerProxy有一个特性,提供了基于正则表达式匹配的请求分发实现,只需要修改配置文件,就能轻易满足。除此之外,还有其它一下特性。

兼容性,对应用程序透明,不需要版本升级就兼容SQL Server 2000 、SQL Server 2005、SQL Server 2008、SQL Server 2008 R2、SQL Server 2012、 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了,详见安装文档。

下载地址:链接:https://pan.baidu.com/s/1wPRaS5qkQ7Oks-lu4RZelw 密码:mg6y

本文博客地址:http://www.cnblogs.com/ProJKY/p/SqlServerProxy.html    邮箱:projky@126.com 希望大家多指教。

最近更新:

SqlServerProxy现在已无日期限制,所有功能全部免费使用。

        发现bug后或者疑问,可以加QQ:1781575586,免费修改及咨询,加Q时,麻烦说明下,否则一律不加。

        另外,从服务器的配置连接密码支持加密,详情请查看《4、实践手册.txt》第7条。

SqlServer横向扩展负载均衡终极利器SqlServerProxy 不限功能永久免费的更多相关文章

  1. Nginx 之五: Nginx服务器的负载均衡、缓存与动静分离功能

    一.负载均衡: 通过反向代理客户端的请求到一个服务器群组,通过某种算法,将客户端的请求按照自定义的有规律的一种调度调度给后端服务器. Nginx的负载均衡使用upstream定义服务器组,后面跟着组名 ...

  2. 客户端负载均衡Feign之二:Feign 功能介绍

    一.Ribboon配置 在Spring cloud Feign中客户端负载均衡是通过Spring cloud Ribbon实现的,所以我们可以直接通过配置Ribbon客户端的方式来自定义各个服务客户端 ...

  3. 腾讯云负载均衡CLB的那些“独门利器”

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:李想 腾讯人做产品一直是很贴近用户的需求的,腾讯云也不例外.负载均衡器作为公有云上的最基础的网络服务,几乎每家云厂商都会提供,虽然负载均衡 ...

  4. Dubbo的负载均衡

    背景 Dubbo是一个分布式服务框架,能避免单点故障和支持服务的横向扩容.一个服务通常会部署多个实例.如何从多个服务 Provider 组成的集群中挑选出一个进行调用,就涉及到一个负载均衡的策略. 几 ...

  5. 【官方文档】Nginx负载均衡学习笔记(二)负载均衡基本概念介绍

    简介 负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台 ECS 的流量分发控制服务.负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应 ...

  6. 手把手教程: CentOS 6.5 LVS + KeepAlived 搭建 负载均衡 高可用 集群

    为了实现服务的高可用和可扩展,在网上找了几天的资料,现在终于配置完毕,现将心得公布处理,希望对和我一样刚入门的菜鸟能有一些帮助. 一.理论知识(原理) 我们不仅要知其然,而且要知其所以然,所以先给大家 ...

  7. 【转载】解决k8s中的长连接负载均衡问题

    原文链接:一流铲屎官二流程序员[解决k8s中的长连接负载均衡问题] 长连接与短连接: 简介 长连接是指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测 ...

  8. 解析nginx负载均衡

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://baidutech.blog.51cto.com/4114344/1033718 ...

  9. net core 实战之 redis 负载均衡和"高可用"实现

    net core 实战之 redis 负载均衡和"高可用"实现 1.概述 分布式系统缓存已经变得不可或缺,本文主要阐述如何实现redis主从复制集群的负载均衡,以及 redis的& ...

随机推荐

  1. certificate verify fails (https://gems.ruby-china.org错误

    首先:执行这一步报错的背景是: 更换gems源, 通常执行 gem sources --add https://gems.ruby-china.org/ --remove https://rubyge ...

  2. [转]SQL的主键和外键约束

    SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...

  3. Asp.Net Core 连接Mysql

    上一篇文章里最后在VS里测试是没有问题的,但是在Windows命令行模式下会报错. 首先用dotnet restore命令的时候会出现error: 然后用dotnet run会出现警告,但是依旧会成功 ...

  4. 一桩由X509Certificate2引发的血案

    A process serving application pool '. The data field contains the error number. 在某次网站更新后,发现wcf服务不可用了 ...

  5. 记一次Socket编程踩的坑

    闲来无事研究了下Socket,想用它做个简单的聊天室模型,结果踩了个坑,整半天才出来,惭愧啊,先上完成的代码吧 服务端: public partial class Form1 : Form { pub ...

  6. BugFree3.0.4Linux环境安装指南

    bugfree安装的前提是配置LAMP(apache+mysql+php),我安装的linux系统是centos6.0 一.安装Apache服务器 1.安装apache yum install htt ...

  7. CentOS常用命令、快照、克隆大揭秘

    不多说,直接上干货! cat是查看文件内容, cp –cp是连目录及件文件都拷贝 cp是拷贝文件 a.txt里的内容是,   abc   def   ghi cat a.txt |grep –v gh ...

  8. 根据屏幕尺寸计算rem

    !(function (doc, win) { var docEle = doc.documentElement, evt = "onorientationchange" in w ...

  9. php的304方式

    一般浏览器请求php是不会被缓存的,除非php直接显示的发送head 304 if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { $browserCache ...

  10. vue里面computed的运用理解

    computed 计算属性,是用来声明式的描述一个值依赖了其它的值,当你在模板里把数据绑定到一个计算属性上时,Vue 会在其依赖的任何值导致该计算属性改变时更新 DOM.这个功能非常强大,它可以让你的 ...