一直以來,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了,詳見安裝文檔。
下載地址:http://www.projky.com/downloads/3a382709-d680-476c-853d-dc3af5c625de/SqlServerProxy.zip
本文博客地址:http://www.cnblogs.com/ProJKY/p/SqlServerProxy.html 郵箱:projky@126.com 希望大家多指教。
最近更新:
SqlServerProxy現在已無日期限制,所有功能全部免費使用。
發現bug后或者疑問,可以加QQ:1781575586,免費修改及咨詢,加Q時,麻煩說明下,否則一律不加。
另外,從服務器的配置連接密碼支持加密,詳情請查看《4、實踐手冊.txt》第7條。
新聞熱點
疑難解答