比較了業(yè)界流行的MySQL分布式數(shù)據(jù)庫中間件携冤,關(guān)于每個產(chǎn)品的介紹悼粮,網(wǎng)上的資料比較多,本文只是對幾款產(chǎn)品的架構(gòu)進行比較曾棕,從中可以看出中間件發(fā)展和演進路線
TDDL不同于其它幾款產(chǎn)品扣猫,并非獨立的中間件,只能算作中間層翘地,是以Jar包方式提供給應(yīng)用調(diào)用申尤。屬于JDBC Shard的思想癌幕,網(wǎng)上也有很多其它類似產(chǎn)品。
另外昧穿,網(wǎng)上有關(guān)于TDDL的圖勺远,如http://www.tuicool.com/articles/nmeuu2中的圖 1-2 TDDL 所處領(lǐng)域模型定位,把TDDL畫在JDBC下層了时鸵,這個是不對的胶逢,正確的位置是TDDL夾在業(yè)務(wù)層和JDBC中間
Amoeba是作為一個真正的獨立中間件提供服務(wù),即應(yīng)用去連接Amoeba操作MySQL集群寥枝,就像操作單個MySQL一樣宪塔。從架構(gòu)中可以看來,Amoeba算中間件中的早期產(chǎn)品囊拜,后端還在使用JDBC Driver某筐。
Cobar是在Amoeba基礎(chǔ)上進化的版本,一個顯著變化是把后端JDBC Driver改為原生的MySQL通信協(xié)議層冠跷。
后端去掉JDBC Driver后南誊,意味著不再支持JDBC規(guī)范,不能支持Oracle蜜托、PostgreSQL等數(shù)據(jù)抄囚。但使用原生通信協(xié)議代替JDBC Driver,后端的功能增加了很多想象力橄务,比如主備切換幔托、讀寫分離、異步操作等蜂挪。
MyCat又是在Cobar基礎(chǔ)上發(fā)展的版本重挑,兩個顯著點是:
后端由BIO改為NIO,并發(fā)量有大幅提高
增加了對Order By棠涮、Group By谬哀、limit等聚合功能的支持(,雖然Cobar也可以支持Order By严肪、Group By史煎、limit語法,但是結(jié)果沒有進行聚合驳糯,只是簡單返回給前端篇梭,聚合功能還是需要業(yè)務(wù)系統(tǒng)自己完成)。
目前社區(qū)情況:
TDDL處于停滯狀態(tài)
Amoeba處于停滯狀態(tài)
Cobar處于停滯狀態(tài)
MyCAT社區(qū)非吃褪啵活躍
感想:拋開TDDL不說很洋,Amoeba、Cobar隧枫、MyCAT這三者的淵源比較深喉磁,若Amoeba能繼續(xù)下去谓苟,Cobar就不會出來;若Cobar那批人不是都走光了的話协怒,MyCAT也不會再另起爐灶涝焙。所以說,在中國開源的項目很多孕暇,但是能堅持下去的非常難仑撞,MyCAT社區(qū)現(xiàn)在非常活躍妖滔,也真是一件蠻難得的事隧哮。
這個博客把幾款產(chǎn)品的資料匯總在一起,倒也省得大家在網(wǎng)上到處搜了座舍。
mysql中間件研究(Atlas沮翔,cobar,TDDL曲秉,mycat采蚀,heisenberg,Oceanus,vitess)
http://songwie.com/articlelist/44
mysql中間件研究(Atlas,cobar承二,TDDL)