一直以来,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. 第7章—SpringMVC高级技术—不用web.xml,而使用java类配置SpringMVC

    不用web.xml,而使用java类配置SpringMVC DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置 ...

  2. Fiddler HTTPS抓包

    现在很多带有比较重要信息的接口都使用了安全性更高的HTTPS,而Fiddler默认是抓取HTTP类型的接口,要想查看HTTPS类型接口就需要安装fiddler证书.   fiddler安装教程可参考: ...

  3. Nodejs学习笔记(十五)—Node.js + Koa2 构建网站简单示例

    前言 前面一有写到一篇Node.js+Express构建网站简单示例:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp.html 这篇还 ...

  4. 复刻smartbits的国产网络测试工具minismb-如何测试ip限速

    复刻smartbits的网路性能测试工具MiniSMB,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数和最 ...

  5. Hive use mapreduce引擎 bsonFile splits报错处理

    Hive use mapreduce引擎 1.          出现报错.关于bsonFile的.禁止hdfs里面存储的bson文件自动splits. 可以在hive-site.xml文件里面添加如 ...

  6. 【LeetCode题解】169_求众数(Majority-Element)

    目录 169_求众数(Majority-Element) 描述 解法一:暴力法 思路 Java 实现 Python 实现 复杂度分析 解法二:哈希表 思路 Java 实现 Python 实现 复杂度分 ...

  7. 使用Mac命令别名,提升工作效率

    为系统添加命令别名可以提高我们的工作效率,告别命令繁琐,庸长的的烦恼. Mac的~/.bash_profile文件提供了为系统添加命令别名的地方.所以我们要操作的也是这个文件. 下面是修改~/.bas ...

  8. 本地git关联远程github

    0. 前言 我们开发的项目,均在本地开发:为了保证项目进度的一致性和公开性等,我们通常将开发过程代码或成品放置到github中,本文就讲述如何使得本地git与远程github同步! PS:以下两个名称 ...

  9. Linux系统资源管理 之 硬件信息

    1. CPU lscpu : 一般不加参数,直接使用该命令. cat /proc/cpuinfo: 该文件中列出了CPU的详细信息,类似于'lscpu'命令 lscpu [niesh @niesh D ...

  10. c#基础学习(0701)之一些简单的方法练习

    一个简单的求数组最大值的方法 //可变参数 int max=GetMaxNumbers(101,30) static int GetMaxNumbers(params int[] pms) { ]; ...