溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何分解單體式數(shù)據(jù)庫以實現(xiàn)微服務(wù)

發(fā)布時間:2021-10-22 15:59:42 來源:億速云 閱讀:136 作者:iii 欄目:數(shù)據(jù)庫

這篇文章主要講解了“如何分解單體式數(shù)據(jù)庫以實現(xiàn)微服務(wù)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何分解單體式數(shù)據(jù)庫以實現(xiàn)微服務(wù)”吧!

按服務(wù)模式的數(shù)據(jù)庫

在微服務(wù)架構(gòu)中,大型數(shù)據(jù)湖需要轉(zhuǎn)型為分布式數(shù)據(jù)庫,以匹配特定服務(wù)。這樣做可在只需要訪問原始數(shù)據(jù)庫特定部分的各個服務(wù)間創(chuàng)建必要的關(guān)注點分離。這也可幫助管理自己服務(wù)集的團隊維持所需的獨立控制。

根據(jù)Praful Todkar建議的模型,分解單體數(shù)據(jù)庫需要與其所支持的服務(wù)同時進行-有時稱為按服務(wù)模式的數(shù)據(jù)庫。這應(yīng)該是逐步的過程,并要求團隊:

  • 從單體中分離出單個服務(wù),并將流量路由到它;

  • 分離相同數(shù)據(jù)庫中的表,并將其與該服務(wù)匹配;

  • 在該表旁邊創(chuàng)建新的較小的數(shù)據(jù)庫,并將流量路由到它;

  • 從原始數(shù)據(jù)庫中刪除先前的數(shù)據(jù)和架構(gòu)。

分離服務(wù)和表

在微服務(wù)遷移期間,重組整個數(shù)據(jù)庫有點像在駕駛汽車的同時更換輪胎。這樣做可能會導(dǎo)致各種故障,并增加丟失數(shù)據(jù)或破壞功能的機會。

正確的做法是,從小處著手,在舊架構(gòu)與新微服務(wù)間進行邏輯分離。當(dāng)你選擇要從單體中移除的服務(wù)后,創(chuàng)建一個新數(shù)據(jù)表(或多個表),其中僅包含新服務(wù)所需的數(shù)據(jù)。

在此步驟中,明確的路由規(guī)則至關(guān)重要。首先團隊需要將流量從單體應(yīng)用程序重新路由到新的微服務(wù)。然后,他們必須將舊的單體數(shù)據(jù)庫的部分轉(zhuǎn)移到表中,這最終將構(gòu)成新數(shù)據(jù)庫的框架。所有這些都需要現(xiàn)代的聯(lián)網(wǎng)功能,例如由Istio等工具實現(xiàn)的服務(wù)網(wǎng)格方法。

當(dāng)將分離的表轉(zhuǎn)換為新的分布式數(shù)據(jù)庫時,奇偶校驗也至關(guān)重要。請確保新舊數(shù)據(jù)庫中的數(shù)據(jù)已完全同步。在確認(rèn)數(shù)據(jù)奇偶校驗后,從以前的數(shù)據(jù)庫中刪除表和舊數(shù)據(jù)。

使用模式是便于管理,但不能過于依靠

模式是元數(shù)據(jù)集,用來描述數(shù)據(jù)庫內(nèi)數(shù)據(jù)的結(jié)構(gòu)。有些團隊更喜歡按模式整理數(shù)據(jù),為每個服務(wù)創(chuàng)建獨有的數(shù)據(jù)庫模式,而不是整個數(shù)據(jù)庫。這種方法有著無可爭議的好處,因為要管理的數(shù)據(jù)庫更少,并且它們之間的統(tǒng)一性更高。

但是,這種做法非常接近單體式數(shù)據(jù)湖模型,而我們正試圖遠離這種模型。如果有選擇的話,即使看起來客觀上適得其反,開發(fā)人員和架構(gòu)師也會傾向于熟悉的方法。他們會做出妥協(xié)并遵循按服務(wù)模式做法。但是請記?。褐灰锌赡?,最好為每個服務(wù)都設(shè)置專用數(shù)據(jù)庫,而不要依賴總體架構(gòu)。

微服務(wù)最好的部分是,它使你可以將專用數(shù)據(jù)庫分配給某些服務(wù),而將共享數(shù)據(jù)庫用于其他服務(wù)。該決定通常取決于服務(wù)的重要性及其處理的數(shù)據(jù)類型。團隊結(jié)構(gòu)也在這里發(fā)揮作用。有些服務(wù)要求管理它們的團隊具有嚴(yán)格的自治權(quán),而其他服務(wù)最好在多個團隊之間共享。

為微服務(wù)選擇最佳數(shù)據(jù)庫 通常,單體是構(gòu)建大型關(guān)系數(shù)據(jù)庫上。當(dāng)遷移到微服務(wù)時,為新架構(gòu)選擇數(shù)據(jù)庫是重大決定。

現(xiàn)在有很多數(shù)據(jù)庫選項,包括:

  • 鍵值數(shù)據(jù)庫

  • 文檔存儲數(shù)據(jù)庫

  • 圖形數(shù)據(jù)庫

  • 基于列的數(shù)據(jù)庫

每種類型的數(shù)據(jù)庫模型都適合特定類型的數(shù)據(jù)管理需求。例如,鍵值數(shù)據(jù)庫和列式數(shù)據(jù)庫最適合結(jié)構(gòu)化數(shù)據(jù),圖形適合半結(jié)構(gòu)化數(shù)據(jù),而文檔存儲則最適合非結(jié)構(gòu)化數(shù)據(jù)。

請記住,每種數(shù)據(jù)庫類型的讀寫速度都不同,圍繞不同數(shù)據(jù)庫的供應(yīng)商工具也不同。在選擇任何一種數(shù)據(jù)庫類型或工具集前,請使用樣本數(shù)據(jù)運行測試。例如,對于需要實時性能的服務(wù),將需要具有強大內(nèi)存性能的數(shù)據(jù)庫。

盡管企業(yè)正在遷移到微服務(wù),但是關(guān)系數(shù)據(jù)庫不會很快消失。出于各種原因,很多應(yīng)用程序的某些部件在傳統(tǒng)架構(gòu)中運行時性能最佳,并且將依賴于舊的單體數(shù)據(jù)庫來運行。好消息是微服務(wù)支持這種數(shù)據(jù)庫管理的多類型模型。因此,不要僅僅因為其他服務(wù)正在遷移到微服務(wù),而試圖將應(yīng)用程序的每個部分從單體中移出。

感謝各位的閱讀,以上就是“如何分解單體式數(shù)據(jù)庫以實現(xiàn)微服務(wù)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何分解單體式數(shù)據(jù)庫以實現(xiàn)微服務(wù)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI