分布式資料庫中介軟體DDM的實現原理

2021-09-13 15:16:13 字數 2687 閱讀 6134

隨著資料量不斷增大,傳統的架構模式難以解決業務量不斷增長所帶來的問題,特別是在業務成線性、甚至指數級上公升的情況。此時我們不得不通過水平擴充套件,把資料庫放到不同伺服器上來解決問題,也就是我們說的資料庫中介軟體。

作為資料庫中介軟體,分布式資料庫中介軟體ddm將底層資料庫儲存引擎以集群方式管理起來,使用者使用非常方便。應用程式不需要關心具體有多少分片。類似操作單機資料庫,使用者通過ddm管理控制台進行資料庫運維,使用jdbc等驅動服務或sql客戶端連線資料庫,進行資料讀寫。

ddm服務的業務架構圖示

分片是解決資料庫儲存容量限制的直接途徑。分片包括垂直分片與水平分片兩種方式。

垂直分片

垂直分片又叫縱向分割,即以邏輯表為單位,把原有資料庫切分成多個資料庫。切分後不同的表儲存在不同的資料庫上。

垂直分片與業務架構設計有密切的聯絡。比如從業務領域對系統進行架構優化,分成多個子業務系統,各個子業務系統耦合度較低。子業務系統間以介面方式進行資料通訊和資料交換。垂直拆分後業務清晰,拆分規則明確,系統之間容易整合與擴充套件。一般用於資料庫上層架構設計。

垂直分片示意圖

水平分片

水平分片又叫橫向分割,即以邏輯表中的資料行記錄為單位,把原有邏輯資料庫切分成多個物理資料庫分片,表資料記錄分布儲存在各個分片上。

水平分片主要用業務架構無法繼續細分,而資料庫中單張表資料量太大,查詢效能下降的場景。通過水平分片,即解決單庫容量問題,同時提高併發查詢效能。

水平分片示意圖

ddm實現了自動水平分片,應用無需關心某個資料該儲存在哪一塊分片上。對邏輯表水平分片需要依據一定的分片規則,例如乙個訂單跟蹤系統(見上圖),我們選取訂單號(orderid)作為拆分鍵,分別對「訂單流水表」、「訂單詳情表」以及「物流跟蹤表」進行水平拆分,拆分規則為對鍵值hash後求模,則分片計算規則如下:

h(key(orderid)) = hash(key(orderid))%n

其中,n表示一共有n個資料分片,h(key(orderid))表示該訂單經過訂單號hash並求模後儲存的分片編號。

分片後資料儲存示意圖

路由分發

路由分發與水平分片同為ddm的基礎功能。在分布式資料庫中,路由的作用即將sql語句進行解析,並**到正確的分片上,保證sql執行後得到正確的結果,並且節約qps資源。例如:訂單支付系統包含了shard0、shard1、shard2三個分片,訂單號2017010112345678的訂單資料儲存在shard0分片上,則應該將以下語句路由分發到shard0分片上執行。

select customer, orderstatus, createdate from order

where orderid = '2017010112345678';

如果同時路由到shard0、shard1、shard2三個分片,會造成多餘的查詢,浪費資源;如果路由到shard1、shard2分片,則得不到正確的返回結果。

ddm對單張表的路由解析流程如下:

單張表的路由解析流程

讀寫分離

資料庫中對計算和快取資源消耗較多的往往是密集或複雜的sql查詢。當系統資源被查詢語句消耗,反過來會影響資料寫入操作,進而導致資料庫整體效能下降,響應緩慢。因此,當資料庫cpu和記憶體資源占用居高不下,且讀寫比例較高時,可以為資料庫新增唯讀例項。

新增唯讀例項的作用有以下:

1、將查詢非事務性查詢sql路由到唯讀例項中執行,主例項上執行事務性sql,在很大程度上緩解主例項上的s鎖與x鎖的競爭。

2、對唯讀例項上的錶可配置不提供事務支援的資料庫引擎,進而提公升查詢效率。

3、增加唯讀例項,也相當於資料庫橫向擴充套件,直接增加負載能力,同時增加資料冗餘,確保資料庫高可用。

ddm服務實現了自動讀寫分離,使用者購買了rds唯讀例項後,將唯讀例項資訊同步到ddm中即可,無需再做其他配置。同時,ddm支援使用者在sql中自定義讀寫分離策略,具體用法請參考如何實現讀寫分離。

讀寫分離示意圖

平滑擴容

隨著業務增長,邏輯庫儲存空間不足,併發壓力較大,此時可對ddm例項邏輯庫進行平滑擴容,通過增加rds例項來提高資料儲存能力與併發支援能力。

平滑擴容是一種水平擴容方式,通過增加rds例項的數量來提公升總體資料儲存容量,把分庫平滑擴容到新增加的rds例項上,保證所有的資料都是均衡分布在每個分庫上,降單個rds例項的處理壓力。平滑擴容原理如下圖所示。

平滑擴容原理

對話DDM 分布式資料庫中介軟體全解析

進入雲計算時代,傳統的資料庫在效能和容量等方面已無法滿足企業的要求,隨著資料量的不斷驟增,易於擴充套件 拆分的資料庫解決方案對於企業的雲化轉型更是顯得尤為重要。為使企業應用上雲更簡單,分布式資料庫中介軟體ddm distributed database middleware 專注解決企業在上雲過程中...

對話DDM 分布式資料庫中介軟體全解析

進入雲計算時代,傳統的資料庫在效能和容量等方面已無法滿足企業的要求,隨著資料量的不斷驟增,易於擴充套件 拆分的資料庫解決方案對於企業的雲化轉型更是顯得尤為重要。為使企業應用上雲更簡單,分布式資料庫中介軟體ddm distributed database middleware 專注解決企業在上雲過程中...

分布式資料庫中介軟體DDM如何配置讀寫分離詳細教程

ddm支援配置rds讀策略,您可以根據資料讀取壓力負載情況,登入ddm管理控制台 rds匯入管理 更多 設定rds讀策略 合理配置rds讀策略,提高查詢效能,更多詳情請到華為雲官網,目前有試用體驗活動哦。rds讀策略分為四種,詳情如下表所示。表1讀策略詳細資訊 rds讀策略 全讀主 均衡讀 唯讀例項...