數(shù)據(jù)庫(kù)中間件是什么?
網(wǎng)友解答: 我從早期的amoeba讀寫(xiě)分離,druid,tddl分庫(kù)分表,現(xiàn)在在使用公司自己的數(shù)據(jù)庫(kù)組件!也來(lái)交流下數(shù)據(jù)庫(kù)中間件!數(shù)據(jù)庫(kù)中間件可以說(shuō)是分布式,高并發(fā)系統(tǒng)架構(gòu)中一定會(huì)用的!
我從早期的amoeba讀寫(xiě)分離,druid,tddl分庫(kù)分表,現(xiàn)在在使用公司自己的數(shù)據(jù)庫(kù)組件!也來(lái)交流下數(shù)據(jù)庫(kù)中間件!
數(shù)據(jù)庫(kù)中間件可以說(shuō)是分布式,高并發(fā)系統(tǒng)架構(gòu)中一定會(huì)用的!
一般來(lái)說(shuō),一個(gè)復(fù)雜系統(tǒng)里面會(huì)有消息中間件(生產(chǎn)者和消費(fèi)者之間通信的),數(shù)據(jù)庫(kù)中間件(服務(wù)與數(shù)據(jù)庫(kù)之間通信的),服務(wù)中間件(連接多個(gè)服務(wù)的)等等!
何為中間件?就是連接兩個(gè)系統(tǒng)并做特殊處理的組件!
何為數(shù)據(jù)庫(kù)中間件?業(yè)務(wù)應(yīng)用系統(tǒng)通過(guò)數(shù)據(jù)庫(kù)中間件對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作(增刪改查,分庫(kù)分表,讀寫(xiě)分離,性能監(jiān)控等)的組件!
中間件特點(diǎn):就是對(duì)解耦的兩個(gè)系統(tǒng)進(jìn)行通信,互相解耦,中間件具備擴(kuò)展性,可替換性!同時(shí)集中式的管理,監(jiān)控!提供高可用性,大容量,高并發(fā)的解決方式!
數(shù)據(jù)庫(kù)中間件的分類(lèi):
沒(méi)有嚴(yán)格分類(lèi),根據(jù)功能可以分為:
1,讀寫(xiě)分離,分庫(kù)分表這種跟業(yè)務(wù)息息相關(guān)的中間件!
2,數(shù)據(jù)庫(kù)之間進(jìn)行同步和遷移的中間件
3,增量消費(fèi)數(shù)據(jù)的中間件!
數(shù)據(jù)庫(kù)中間件有哪些產(chǎn)品呢?
分庫(kù)分表組件:Cobar,mycat,tddl,DDB,Sharding-jdbc!
增量消費(fèi)組件:canal,Erosa!
同步和遷移數(shù)據(jù)組件:Otter,DRC,DataX!
伴隨著大容量,高并發(fā)的分布式系統(tǒng)的變遷,中間件技術(shù)也日益發(fā)展,但是不同的中間件都是開(kāi)發(fā)公司為了滿(mǎn)足自身業(yè)務(wù)需要進(jìn)行開(kāi)發(fā)的組件,所以選擇中間件的時(shí)候一定要酌情處理,必要時(shí)需要自己定向開(kāi)發(fā)中間件!
我們公司就用了自己開(kāi)發(fā)的dmds數(shù)據(jù)庫(kù)中間件!滿(mǎn)足自己的業(yè)務(wù)需要!
有需要了解數(shù)據(jù)庫(kù)中間件怎么玩的朋友,可以私聊我,咱們一塊交流,我知無(wú)不答!
網(wǎng)友解答:面向數(shù)據(jù)庫(kù)的中間件是促進(jìn)與數(shù)據(jù)庫(kù)通信的中間件,無(wú)論是來(lái)自應(yīng)用程序還是數(shù)據(jù)庫(kù)之間。 開(kāi)發(fā)人員通常使用面向數(shù)據(jù)庫(kù)的中間件作為從本地或遠(yuǎn)程數(shù)據(jù)庫(kù)提取信息的機(jī)制。 例如,為了從Oracle數(shù)據(jù)庫(kù)提取信息,開(kāi)發(fā)人員可以調(diào)用面向數(shù)據(jù)庫(kù)的中間件來(lái)登錄到數(shù)據(jù)庫(kù),請(qǐng)求信息并處理從數(shù)據(jù)庫(kù)中提取的信息。
盡管CLI是跨越多種數(shù)據(jù)庫(kù)的通用API,通過(guò)定義良好的通用接口提供對(duì)任意數(shù)量的數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn),但它們通常被發(fā)現(xiàn)可用于關(guān)系數(shù)據(jù)庫(kù)。 Microsoft ODBC就是這種情況。 ODBC公開(kāi)一個(gè)接口以便于訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。 然后使用驅(qū)動(dòng)程序來(lái)適應(yīng)數(shù)據(jù)庫(kù)之間的差異。 ODBC還提供對(duì)同一接口的同時(shí)多個(gè)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn) - 在ODBC體系結(jié)構(gòu)中,驅(qū)動(dòng)程序管理器可以加載和卸載驅(qū)動(dòng)程序以促進(jìn)不同數(shù)據(jù)庫(kù)(例如Oracle,Informix和DB2)之間的通信。
JavaSoft的Java數(shù)據(jù)庫(kù)連接(JDBC)是CLI的另一個(gè)例子。 JDBC是一種接口標(biāo)準(zhǔn),它使用一組Java方法來(lái)方便訪(fǎng)問(wèn)多個(gè)數(shù)據(jù)庫(kù)。 JDBC非常像ODBC,可以從任何Java應(yīng)用程序訪(fǎng)問(wèn)任意數(shù)量的數(shù)據(jù)庫(kù):applet,servlet,JSP,EJB或獨(dú)立應(yīng)用程序。 Microsoft數(shù)據(jù)庫(kù)中間件的未來(lái)由其OLE DB表示。 OLE DB提供了一種標(biāo)準(zhǔn)機(jī)制來(lái)訪(fǎng)問(wèn)任意數(shù)量的資源(包括數(shù)據(jù)庫(kù),Excel電子表格和平面文件)作為標(biāo)準(zhǔn)對(duì)象(例如COM對(duì)象)。 OLE DB提供了一個(gè)對(duì)象框架來(lái)檢索結(jié)果集,然后在內(nèi)存中導(dǎo)航和操作結(jié)果集。 OLE DB依靠OLE Transactions事務(wù)管理框架來(lái)確保ACID屬性(原子性,一致性,隔離性和持久性)
本地?cái)?shù)據(jù)庫(kù)中間件不是使用單個(gè)多數(shù)據(jù)庫(kù)API,而是僅使用本機(jī)機(jī)制來(lái)訪(fǎng)問(wèn)特定數(shù)據(jù)庫(kù)的功能。 這種限制 - 僅與一種類(lèi)型的數(shù)據(jù)庫(kù)進(jìn)行通信 - 是本地?cái)?shù)據(jù)庫(kù)中間件的主要缺點(diǎn)。 其優(yōu)點(diǎn)包括提高了性能并可以訪(fǎng)問(wèn)特定類(lèi)型數(shù)據(jù)庫(kù)的所有功能。