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