《MySQL中間件盤點》要點:
本文介紹了MySQL中間件盤點,希望對您有用。如果有疑問,可以聯系我們。
首先數據庫技術發展的基礎還是在業務推動的背景下,能夠實現相關的技術保障.業務需求的提升必然會在數據量,拜訪量等方面有更高的要求,而映射到數據庫層面就不是簡單的擴容和添加資源了,我們有時候更需要彈性,需要快速實現,需要更高的性能.這些都是擺在我們面前的問題,而不僅僅是DBA團隊.
所以早期的很多數據庫,從一主一從,一主多從的架構,逐步演變到了讀寫分離,分庫分表,然后就是分布式.而同時從很多層面來說,行業內的方案真是百花齊放,記得前幾天還和同事聊,說如果對比一下Oracle和MySQL,讓我怎么評價,我說單純評估單機的性能和功能,MySQL要落后很多,但是從本錢,技術把控,定制層面來看,MySQL的簡單反而成了其中的一個優勢,在這個基礎上,它有非常多的開源方案,這些讓原本MySQL的應用變得非常豐富起來,你說MySQL能不能做企業級方案,你看看BAT的使用場景,還是能夠經受住考驗的,注意我在此處說的的使用場景,沒有一刀切的場景.
回到正題,MySQL的中間件其實有許多,官方的開源的,我們就來簡單來說說.
先來說說MySQL中間件能夠做什么?要回答這個問題,我們可以反向問一個問題,隨著業務需求的變化,數據庫會有哪些瓶頸,好比:
1.單臺服務器無法承載已有的壓力
2.數據庫單表容量越來越年夜
3.年夜量的讀寫需求無法平衡
4.資源如果擴容,應用改動較年夜
5. 資源的負載沒法拆分,或者不易拆分
所以市面上的很多數據庫中間件主要是分擔了其中的大部門或者一部門的功能點.
沃趣科技的董紅禹總結的這個圖不錯,我直接拿過來了.
我們基本會討論下面的幾個中間件,有些不在上面的圖中,會額外彌補一些.
MySQL Fabric, MySQL Router,MySQL Proxy
Fabric能提供MySQL的HA和Sharding方案,MySQL Router是一個輕量級的中間件用來實現高可用和擴展性的功能.MySQL Fabric在驅動層面可以實現高可用和擴展功能,需要應用端來適配改造.而MySQL Router中間件的拜訪協議與MySQL一致,應用不需要做任何的修改,在MySQL官方近期推出的InnoDB Cluster中MySQL Router是作為“三駕馬車”來使用的.而落寞的是MySQL proxy,目前已經無法下載了,自從推出以來主要就是測試版本,所以在很多功能上多多少少還是有些問題.
360 Atlas
這是國內360公司推出的一個中間件計劃,github地址為:https://github.com/Qihoo360/Atlas
從github的情況來看,星級蠻高,最新的維護是在4天前.它的設計是在mysql-proxy 0.8.2版本的根基上,對其進行了優化,增加了一些新的功能特性.
Mycat
這也是國內的一個中間件方案,業內比擬火,官方鏈接是:http://www.mycat.io/
還有一本Mycat相關的書《散布式數據庫架構及企業實踐——基于Mycat中間件》
根據我的了解,他主要是支持MySQL,同時也支持其它的數據庫,好比Oracle等等,也是一波好友一起來做得這個事情.
我比擬喜歡它的一個原因是因為開源,而且源代碼是Java.
oneproxy
這是前付出寶的架構師樓總開發,目前支持多中數據庫,基于MySQL官方 的proxy思想利用c進行開發的,OneProxy是一款商業收費的中間件,專注在性能和穩定性上,是商業付費的.
DRDS
阿里分布式關系型數據庫服務(Distribute Relational Database Service,簡稱DRDS)是一種程度拆分、可平滑擴縮容、讀寫分離的在線分布式數據庫服務.前身為淘寶 TDDL,再之前還有Cobar,已經不維護了.
該圖來自:http://blog.csdn.net/jerome_s/article/details/53966569
Vitess
谷歌開發的數據庫中間件,集群基于 ZooKeeper 管理,通過 RPC 方式進行數據處理官方網站很簡介: http://vitess.io/ 打開便是一個大V
Maxscale
MaxScale是mariadb研發的,今朝版本不支持分庫分表,在其它幾個方面都很不錯.github鏈接為:https://github.com/mariadb-corporation/MaxScale
歡迎參與《MySQL中間件盤點》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7875.html