MySQL中介軟體方案盤點

jeanron100發表於2017-08-19

 

首先資料庫技術發展的基礎還是在業務推動的背景下,能夠實現相關的技術保障。業務需求的提升必然會在資料量,訪問量等方面有更高的要求,而對映到資料庫層面就不是簡單的擴容和新增資源了,我們有時候更需要彈性,需要快速實現,需要更高的效能。這些都是擺在我們面前的問題,而不僅僅是DBA團隊。

所以早期的很多資料庫,從一主一從,一主多從的架構,逐步演變到了讀寫分離,分庫分表,然後就是分散式。而同時從很多層面來說,行業內的方案真是百花齊放,記得前幾天還和同事聊,說如果對比一下Oracle和MySQL,讓我怎麼評價,我說單純評估單機的效能和功能,MySQL要落後很多,但是從成本,技術把控,定製層面來看,MySQL的簡單反而成了其中的一個優勢,在這個基礎上,它有非常多的開源方案,這些讓原本MySQL的應用變得非常豐富起來,你說MySQL能不能做企業級方案,你看看BAT的使用場景,還是能夠經受住考驗的,注意我在此處說的的使用場景,沒有一刀切的場景。

回到正題,MySQL的中介軟體其實有很多,官方的開源的,我們就來簡單來說說,行業裡還有很多的方案,有些還沒有做調研,就沒在文中及時推出來。

先來說說MySQL中介軟體能夠做什麼?要回答這個問題,我們可以反向問一個問題,隨著業務需求的變化,資料庫會有哪些瓶頸,比如:

1.單臺伺服器無法承載已有的壓力

2.資料庫單表容量越來越大

3.大量的讀寫需求無法平衡

4.資源如果擴容,應用改動較大

5. 資源的負載沒法拆分,或者不易拆分

所以市面上的很多資料庫中介軟體主要是分擔了其中的大部分或者一部分的功能點。

沃趣科技的董紅禹總結的這個圖不錯,我直接拿過來了。

MySQL中介軟體方案盤點

我們基本會討論下面的幾個中介軟體,有些不在上面的圖中,會額外補充一些。

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地址為:

從github的情況來看,星級蠻高,最新的維護是在4天前。它的設計是在mysql-proxy 0.8.2版本的基礎上,對其進行了最佳化,增加了一些新的功能特性。

MySQL中介軟體方案盤點

Mycat

這也是國內的一箇中介軟體方案,業內比較火,官方連結是:

MySQL中介軟體方案盤點

還有一本Mycat相關的書《分散式資料庫架構及企業實踐——基於Mycat中介軟體》

根據我的瞭解,他主要是支援MySQL,同時也支援其它的資料庫,比如Oracle等等,也是一波好友一起來做得這個事情。

我比較喜歡它的一個原因是因為開源,而且原始碼是Java.

oneproxy

這是前支付寶的架構師樓總開發,目前支援多中資料庫,基於MySQL官方 的proxy思想利用c進行開發的,OneProxy是一款商業收費的中介軟體,專注在效能和穩定性上,是商業付費的。

MySQL中介軟體方案盤點

DRDS

阿里分散式關係型資料庫服務(Distribute Relational Database Service,簡稱DRDS)是一種水平拆分、可平滑擴縮容、讀寫分離的線上分散式資料庫服務。前身為淘寶 TDDL,再之前還有Cobar,已經不維護了。

該圖來自:http://blog.csdn.net/jerome_s/article/details/53966569

MySQL中介軟體方案盤點

Vitess

谷歌開發的資料庫中介軟體,叢集基於 ZooKeeper 管理,透過 RPC 方式進行資料處理官方網站很簡介: 開啟就是一個大V

MySQL中介軟體方案盤點

Maxscale

MaxScale是mariadb研發的,目前版本不支援分庫分表,在其它幾個方面都很不錯。github連結為:

MySQL中介軟體方案盤點

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2143817/,如需轉載,請註明出處,否則將追究法律責任。

相關文章