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地址為:
從github的情況來看,星級蠻高,最新的維護是在4天前。它的設計是在mysql-proxy 0.8.2版本的基礎上,對其進行了最佳化,增加了一些新的功能特性。
Mycat
這也是國內的一箇中介軟體方案,業內比較火,官方連結是:
還有一本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 方式進行資料處理官方網站很簡介: 開啟就是一個大V
Maxscale
MaxScale是mariadb研發的,目前版本不支援分庫分表,在其它幾個方面都很不錯。github連結為:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2143817/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL中介軟體MySql
- MySQL中介軟體--ProxySQLMySql
- MySQL中介軟體之ProxySQLMySql
- 【MYsql】Maxscale中介軟體使用MySql
- MVC - 單點登入中介軟體MVC
- Redis中介軟體與Web中介軟體RedisWeb
- MySQL cetus 中介軟體 讀寫分離MySql
- KingShard MySQL中介軟體快速入門MySql
- Mysql中介軟體 oneProxy的使用總結MySql
- 中介軟體之訊息中介軟體-pulsar
- 常用的MySQL中介軟體網址彙總MySql
- MySQL中介軟體之ProxySQL(14):ProxySQL+PXCMySql
- 阿里開源Mysql分散式中介軟體:Cobar阿里MySql分散式
- 【Mysql】KingShard中介軟體的使用與配置MySql
- 訊息中介軟體及其測試要點
- MySQL中介軟體總結MySql
- ThinkPHP 中介軟體PHP
- redux中介軟體Redux
- golang 中介軟體Golang
- 中介軟體整理
- django中介軟體Django
- Laravel 中介軟體Laravel
- Django——中介軟體Django
- 中介軟體-NginxNginx
- 中介軟體漏洞
- 訊息中介軟體Notify和MetaQ-阿里中介軟體阿里
- Mycat中介軟體實現Mysql資料分片( 下篇)MySql
- Mycat中介軟體實現Mysql資料分片(上篇)MySql
- 開源 | MySQL資料傳輸中介軟體—DTLEMySql
- MySQL 中介軟體Atlas 實現讀寫分離MySql
- 壓測資料庫中介軟體的注意點資料庫
- 技術盤點:雲原生中介軟體的技術演進與未來趨勢展望
- 什麼是中介軟體?Linux常用中介軟體都有哪些?Linux
- websocket gateway 中介軟體WebGateway
- 理解Redux中介軟體Redux
- golang http 中介軟體GolangHTTP
- Django-中介軟體Django
- 理解Express中介軟體Express