0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分析探討微服務(wù)遷移如何影響數(shù)據(jù)庫管理和分解數(shù)據(jù)庫的步驟

如意 ? 來源:TechTarget中國 ? 作者:鄒錚 ? 2020-10-12 14:43 ? 次閱讀

在從單體式架構(gòu)遷移到微服務(wù)架構(gòu)時(shí),數(shù)據(jù)庫通常是事后想法。有些人認(rèn)為遷移僅涉及應(yīng)用邏輯的重組,而底層數(shù)據(jù)保持不變。但是,這種做法可能會導(dǎo)致單體式服務(wù)和微服務(wù)的尷尬混合:分布式單體服務(wù)。

微服務(wù)模型使基礎(chǔ)架構(gòu)和數(shù)據(jù)存儲發(fā)生深刻變化。在微服務(wù)模型中,從傳統(tǒng)應(yīng)用程序中拉出服務(wù),并為其提供獨(dú)立性,在這種情況下,團(tuán)隊(duì)也必須考慮其基礎(chǔ)數(shù)據(jù)庫,并將其分解為特定于服務(wù)的數(shù)據(jù)源。

讓我們看一下微服務(wù)遷移如何影響數(shù)據(jù)庫管理,并探討分解數(shù)據(jù)庫的步驟。

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

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

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

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

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

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

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

分離服務(wù)和表

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

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

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

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

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

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

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

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

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

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

鍵值數(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ù)運(yùn)行測試。例如,對于需要實(shí)時(shí)性能的服務(wù),將需要具有強(qiáng)大內(nèi)存性能的數(shù)據(jù)庫。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3752

    瀏覽量

    64229
  • 分布式
    +關(guān)注

    關(guān)注

    1

    文章

    858

    瀏覽量

    74439
  • 微服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    131

    瀏覽量

    7322
收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)據(jù)庫管理

    如題:用labview操作access數(shù)據(jù)庫做公司測試流程管控。因測試數(shù)據(jù)量大,數(shù)據(jù)生成多,現(xiàn)在accdb文件已經(jīng)有50M了,現(xiàn)在發(fā)現(xiàn)數(shù)據(jù)庫在本地操作都很快,但是放在遠(yuǎn)端
    發(fā)表于 11-08 16:58

    數(shù)據(jù)庫使用教程下載

    創(chuàng)建數(shù)據(jù)庫是實(shí)施數(shù)據(jù)庫應(yīng)用系統(tǒng)的第一步,創(chuàng)建合理結(jié)構(gòu)的數(shù)據(jù)庫需要合理的規(guī)劃與設(shè)計(jì)、需要了解數(shù)據(jù)庫物理存儲結(jié)構(gòu)與邏輯結(jié)構(gòu)。數(shù)據(jù)庫是表的集合,
    發(fā)表于 05-09 11:08 ?0次下載

    數(shù)據(jù)庫復(fù)制的設(shè)計(jì)和管理

    【摘 要】 介紹數(shù)據(jù)庫復(fù)制在分布式數(shù)據(jù)庫系統(tǒng)中的應(yīng)用、設(shè)計(jì)和管理,給出了設(shè)計(jì)步驟和設(shè)計(jì)時(shí)考慮的因素。對設(shè)計(jì)和應(yīng)用中出現(xiàn)的沖突問題進(jìn)行了分析
    發(fā)表于 05-11 19:35 ?762次閱讀

    Informix數(shù)據(jù)庫管理

    Informix數(shù)據(jù)庫管理: 一、Informix數(shù)據(jù)庫的安裝
    發(fā)表于 08-01 15:29 ?1276次閱讀

    數(shù)據(jù)庫SQL語句電子教程

    電子發(fā)燒友為您提供了數(shù)據(jù)庫SQL語句電子教程,幫助您了解數(shù)據(jù)庫 SQL語句 ,學(xué)習(xí)讀懂數(shù)據(jù)庫SQL語句,達(dá)到會寫數(shù)據(jù)庫SQL語句,通過具體的分析
    發(fā)表于 07-14 17:09 ?0次下載

    如何為微服務(wù)選擇數(shù)據(jù)庫

    你的微服務(wù)架構(gòu)需要多種數(shù)據(jù)模型。你是應(yīng)該選擇混合持久化呢還是多模型數(shù)據(jù)庫? 在過去的十年,大規(guī)模的分布式系統(tǒng)呈現(xiàn)爆炸式增長。這一趨勢促使在數(shù)據(jù)庫領(lǐng)域產(chǎn)生了一股巨大的創(chuàng)造力,這在軟件業(yè)的
    發(fā)表于 11-23 10:55 ?1711次閱讀

    數(shù)據(jù)庫引擎是什么

    數(shù)據(jù)庫引擎是用于存儲、處理和保護(hù)數(shù)據(jù)的核心服務(wù)。利用數(shù)據(jù)庫引擎可控制訪問權(quán)限并快速處理事務(wù),從而滿足企業(yè)內(nèi)大多數(shù)需要處理大量數(shù)據(jù)的應(yīng)用程序的
    的頭像 發(fā)表于 02-24 14:43 ?1.1w次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b>引擎是什么

    數(shù)據(jù)庫教程之數(shù)據(jù)庫的創(chuàng)建與管理詳細(xì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)庫教程之數(shù)據(jù)庫的創(chuàng)建與管理詳細(xì)資料免費(fèi)下載。內(nèi)容包括了:SQL Server數(shù)據(jù)庫概述, 創(chuàng)建數(shù)據(jù)庫,修改
    發(fā)表于 10-19 10:41 ?18次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>教程之<b class='flag-5'>數(shù)據(jù)庫</b>的創(chuàng)建與<b class='flag-5'>管理</b>詳細(xì)資料免費(fèi)下載

    數(shù)據(jù)庫教程之如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)庫教程之如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)內(nèi)容包括了:1 數(shù)據(jù)庫設(shè)計(jì)概述 ,2 數(shù)據(jù)庫需求分析 ,3
    發(fā)表于 10-19 10:41 ?21次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>教程之如何進(jìn)行<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)

    數(shù)據(jù)庫管理系統(tǒng)的功能

    本視頻主要詳細(xì)介紹了數(shù)據(jù)庫管理系統(tǒng)的功能,分別是數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)庫的運(yùn)行管理、
    的頭像 發(fā)表于 02-22 15:52 ?5841次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)】MongoDB數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    需求,需要對MongoDB數(shù)據(jù)庫內(nèi)的文件進(jìn)行遷移,在MongoDB服務(wù)開啟的狀態(tài)下用戶將數(shù)據(jù)庫文件復(fù)制到其他分區(qū),將MongoDB數(shù)據(jù)庫之前
    的頭像 發(fā)表于 01-05 13:50 ?893次閱讀
    【<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)】MongoDB<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫建立|數(shù)據(jù)庫創(chuàng)建的方法?

    數(shù)據(jù)庫是一個(gè)存儲關(guān)鍵數(shù)據(jù)的文件系統(tǒng)。利用數(shù)據(jù)庫管理系統(tǒng)建立每個(gè)人的數(shù)據(jù)庫可以更好地提供安全。 數(shù)據(jù)庫
    的頭像 發(fā)表于 07-14 11:15 ?1192次閱讀

    數(shù)據(jù)庫和普通數(shù)據(jù)庫區(qū)別?|PetaExpress云端數(shù)據(jù)庫

    和持久性有四個(gè)特點(diǎn)。 云數(shù)據(jù)庫和普通數(shù)據(jù)庫相比都具備哪些優(yōu)勢? 1)安全穩(wěn)定 云端數(shù)據(jù)庫服務(wù),能夠幫助用戶將危險(xiǎn)的操作收縮起來,避免數(shù)據(jù)庫
    的頭像 發(fā)表于 08-01 17:13 ?1047次閱讀

    MySQL數(shù)據(jù)庫管理與應(yīng)用

    MySQL數(shù)據(jù)庫管理與應(yīng)用 MySQL是一種廣泛使用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),被認(rèn)為是最流行和最常見的開源數(shù)據(jù)庫之一。它可以被用于多種不同的應(yīng)
    的頭像 發(fā)表于 08-28 17:15 ?923次閱讀

    數(shù)據(jù)庫應(yīng)用及其特點(diǎn) 數(shù)據(jù)庫數(shù)據(jù)的基本特點(diǎn)

    管理的一項(xiàng)重要應(yīng)用,其優(yōu)點(diǎn)不僅可以提高工作效率,還可以保證數(shù)據(jù)的安全性和可靠性。本文將詳細(xì)介紹數(shù)據(jù)庫應(yīng)用及其特點(diǎn),同時(shí)探討數(shù)據(jù)庫
    的頭像 發(fā)表于 08-28 17:22 ?2691次閱讀