首頁>Club>
5
回覆列表
  • 1 # 此生唯一

    我從早期的amoeba讀寫分離,druid,tddl分庫分表,現在在使用公司自己的資料庫元件!也來交流下資料庫中介軟體!

    資料庫中介軟體可以說是分散式,高併發系統架構中一定會用的!

    一般來說,一個複雜系統裡面會有訊息中介軟體(生產者和消費者之間通訊的),資料庫中介軟體(服務與資料庫之間通訊的),服務中介軟體(連線多個服務的)等等!

    何為中介軟體?就是連線兩個系統並做特殊處理的元件!

    何為資料庫中介軟體?業務應用系統透過資料庫中介軟體對資料庫進行操作(增刪改查,分庫分表,讀寫分離,效能監控等)的元件!

    中介軟體特點:就是對解耦的兩個系統進行通訊,互相解耦,中介軟體具備擴充套件性,可替換性!同時集中式的管理,監控!提供高可用性,大容量,高併發的解決方式!

    資料庫中介軟體的分類:

    沒有嚴格分類,根據功能可以分為:

    1,讀寫分離,分庫分表這種跟業務息息相關的中介軟體!

    2,資料庫之間進行同步和遷移的中介軟體

    3,增量消費資料的中介軟體!

    資料庫中介軟體有哪些產品呢?

    分庫分表元件:Cobar,mycat,tddl,DDB,Sharding-jdbc!

    增量消費元件:canal,Erosa!

    同步和遷移資料元件:Otter,DRC,DataX!

    伴隨著大容量,高併發的分散式系統的變遷,中介軟體技術也日益發展,但是不同的中介軟體都是開發公司為了滿足自身業務需要進行開發的元件,所以選擇中介軟體的時候一定要酌情處理,必要時需要自己定向開發中間件!

    我們公司就用了自己開發的dmds資料庫中介軟體!滿足自己的業務需要!

    有需要了解資料庫中介軟體怎麼玩的朋友,可以私聊我,咱們一塊交流,我知無不答!

  • 2 # 獨立的網際網路從業者

    面向資料庫的中介軟體是促進與資料庫通訊的中介軟體,無論是來自應用程式還是資料庫之間。 開發人員通常使用面向資料庫的中介軟體作為從本地或遠端資料庫提取資訊的機制。 例如,為了從Oracle資料庫提取資訊,開發人員可以呼叫面向資料庫的中介軟體來登入到資料庫,請求資訊並處理從資料庫中提取的資訊。

    儘管CLI是跨越多種資料庫的通用API,透過定義良好的通用介面提供對任意數量的資料庫的訪問,但它們通常被發現可用於關係資料庫。 Microsoft ODBC就是這種情況。 ODBC公開一個介面以便於訪問資料庫。 然後使用驅動程式來適應資料庫之間的差異。 ODBC還提供對同一介面的同時多個數據庫訪問 - 在ODBC體系結構中,驅動程式管理器可以載入和解除安裝驅動程式以促進不同資料庫(例如Oracle,Informix和DB2)之間的通訊。

    JavaSoft的Java資料庫連線(JDBC)是CLI的另一個例子。 JDBC是一種介面標準,它使用一組Java方法來方便訪問多個數據庫。 JDBC非常像ODBC,可以從任何Java應用程式訪問任意數量的資料庫:applet,servlet,JSP,EJB或獨立應用程式。 Microsoft資料庫中介軟體的未來由其OLE DB表示。 OLE DB提供了一種標準機制來訪問任意數量的資源(包括資料庫,Excel電子表格和平面檔案)作為標準物件(例如COM物件)。 OLE DB提供了一個物件框架來檢索結果集,然後在記憶體中導航和操作結果集。 OLE DB依靠OLE Transactions事務管理框架來確保ACID屬性(原子性,一致性,隔離性和永續性)

    本地資料庫中介軟體不是使用單個多資料庫API,而是僅使用本機機制來訪問特定資料庫的功能。 這種限制 - 僅與一種型別的資料庫進行通訊 - 是本地資料庫中介軟體的主要缺點。 其優點包括提高了效能並可以訪問特定型別資料庫的所有功能。

  • 3 # wujianqinjian

    我的理解是:類似一種資料庫操作代理,雖然我只用過mycat!

    越來越多的資料,讓我們不得不進行分庫分表!

    然而,我們自己手動一個個建表,維護表結構是非常麻煩的!

    mycat的方案就是:我們自己有一張原始的資料庫大表,mycat透過我們設定的配置檔案,就能幫我們快速的進行分表分庫,從而減少了資料庫管理的成本!

  • 4 # 會點程式碼的大叔

    關於資料庫中介軟體,我談談自己的見解,並介紹一下常見的資料庫中介軟體。

    中介軟體是什麼

    首先看看中介軟體的定義:和業務無關的的技術類元件。這種解釋還是稍微有些抽象,下面我舉個例子:

    我辭職去賣羊肉串(業務端),聯絡了很多養殖場(底層),為了羊肉的質量和降低成本,我得一家一家地去考察、談判、比價,然後選一個羊肉供貨商合作。經營了一段時間,這個賣羊肉的漲價了,或者提供的羊肉質量沒原來好了,那麼我就重新考察、談判、比價,如此反覆,我會浪費大量的時間和經歷。

    於是我找了個信得過的代理公司(中介軟體),約定好羊肉的質量規格,談好價錢,以後我只找代理拿貨,具體代理找哪個養殖場合作,掙多少差價,我不管。

    所以中介軟體的作用是:讓業務端和底層解耦,遮蔽底層困難的邏輯,提供更簡單的服務,讓業務端的開發更簡單。

    資料庫中介軟體

    再來看看什麼是資料庫中介軟體。

    在這裡,資料庫就是底層,我們寫的程式就是業務端,資料庫中介軟體就是(和業務無關)的可以實現資料庫一些功能的元件。還是有些抽象,那麼看看常見的資料庫元件有哪些吧。

    分庫分表(分散式):當資料量大的時候,單臺數據庫已經不足以支撐我們的業務量,所以會採用分庫分表的策略。現在支援分庫分表的元件有很多,例如MyCat、MySQL-Proxy、Atlas(360)、Cobar(阿里)、TDDL(淘寶,新名字DRDS)。

    資料庫同步:顧名思義,是對資料庫進行同步的;Otter(阿里),基於資料庫增量日誌解析,準實時同步資料,支援兩個庫都可以寫入,寫入的資料同步到另外的庫。

    資料庫遷移:這個主要用於不同型別資料庫的遷移;yugong(阿里),支援Oracle到Mysql的遷移。

    資料增量訂閱與消費:這個是對資料庫增量日誌解析,提供增量資料訂閱和消費;canal(阿里)。

    聽過了這些資料庫中介軟體的介紹,是不是理解起來更深刻了。

    比如分庫分表的中介軟體,如果自己實現的話,就需要連線多個數據源(或多個表),執行一次查詢,每個資料來源都需要呼叫一次,查詢回來的資料還需要自己處理;

    如果有了中介軟體做這些工作,我們的開發會更加的簡單。

  • 5 # 派可資料BI視覺化

    透過資料倉庫的分層解決建模、模型最佳化、查詢效能最佳化,以空間換時間來提升前端商業智慧BI視覺化訪問資料倉庫資料的查詢效率。

    所以,商業智慧BI的直連連的是什麼,連的是資料倉庫,而不是業務系統資料來源。

    也有一些企業因為對資料倉庫不瞭解,所以在業務系統和商業智慧BI前端之間建了一箇中間庫做隔離,這樣是不是會好一些。確實如此,只要有隔離就會好一些,中間庫也是一個數據庫,跟資料倉庫一樣能做一些緩衝。

    但資料倉庫與中間庫的差異就在於,資料倉庫不僅僅只考慮系統之間的松耦合、隔離的問題,更加考慮了從業務系統資料傳遞到前端商業智慧BI資料視覺化之間的資料模型、資料分層、資料之間的松耦合等一系列複雜問題。所以一個是系統的松耦合,一個是除了系統松耦合之外,更加考慮到了資料、邏輯處理、分析模型的松耦合關係

  • 6 # 諧雲

    中介軟體是位於平臺(硬體和作業系統)和應用之間的通用服務,這些服務具有標準的程式介面和協議。而資料庫中介軟體(Distributed Database Middleware)是解決資料庫容量、效能瓶頸和分散式擴充套件問題的中介軟體服務,提供分庫分表、讀寫分離、彈性擴容等能力,應對海量資料的高併發訪問場景,有效提升資料庫讀寫效能。

    資料庫中介軟體可以簡化對讀寫分離以及分庫分表的操作,並隱藏底層實現細節,可以像操作單庫單表那樣操作多庫多表,主流的設計方案主要有兩種:

    1、 服務端代理:需要獨立部署一個代理服務,該代理服務後面管理多個數據庫例項,在應用中透過一個數據源與該代理伺服器建立連線,由該代理去操作底層資料庫,並返回相應結果。優點是支援多語言,對業務透明,缺點是實現複雜,實現難度大,同時代理需要確保自身高可用

    2、 客戶端代理:在連線池或資料庫驅動上進行一層封裝,內部與不同的資料庫建立連線,並對SQL進行必要的操作,比如讀寫分離選擇走主庫還是從庫,分庫分表select後如何聚合結果。優點是實現簡單,天然去中心化,缺點是支援語言較少,版本升級困難

  • 7 # 資料庫架構師之路

    資料庫中介軟體可以簡化對讀寫分離以及分庫分表的操作,並隱藏底層實現細節,可以像操作單庫單表那樣操作多庫多表,資料庫中介軟體主要能力:

    支援讀寫分離支援從庫讀負載均衡支援分庫操作支援分表操作支援跨庫關聯查詢對事務處理的支援資料安全審計能力

    主流的中介軟體方案主要有兩種:

    1、 服務端代理模式:需要獨立部署一個代理服務,該代理服務後面管理多個數據庫例項,在應用中透過一個數據源與該代理伺服器建立連線,由該代理去操作底層資料庫,並返回相應結果。優點是支援多語言,對業務透明,缺點是實現複雜,實現難度大,同時代理需要確保自身高可用

    2、 客戶端代理:在連線池或資料庫驅動上進行一層封裝,內部與不同的資料庫建立連線,並對SQL進行必要的操作,比如讀寫分離選擇走主庫還是從庫,分庫分表select後如何聚合結果。優點是實現簡單,天然去中心化,缺點是支援語言較少,版本升級困難

    現在大陸比較火的中介軟體如sharding-proxy,國外如proxysql等,如下為一個sharding-proxy示例:

    服務端模式

    客戶端模式

  • 中秋節和大豐收的關聯?
  • 黃金正在遭遇上漲,你會考慮買入嗎?