成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分布式系統(tǒng)中的數(shù)據(jù)訪問設(shè)計(jì)模式

系統(tǒng)
在大多數(shù)具有簡(jiǎn)單查詢的單體系統(tǒng)中,所有必要的數(shù)據(jù)可以在單個(gè)數(shù)據(jù)庫調(diào)用中檢索。然而,當(dāng)數(shù)據(jù)分散到由不同服務(wù)擁有的單獨(dú)的數(shù)據(jù)庫或模式中時(shí),讀操作的數(shù)據(jù)訪問開始變得困難。

在大多數(shù)具有簡(jiǎn)單查詢的單體系統(tǒng)中,所有必要的數(shù)據(jù)可以在單個(gè)數(shù)據(jù)庫調(diào)用中檢索。然而,當(dāng)數(shù)據(jù)分散到由不同服務(wù)擁有的單獨(dú)的數(shù)據(jù)庫或模式中時(shí),讀操作的數(shù)據(jù)訪問開始變得困難。

示例

愿望單服務(wù)維護(hù)客戶可能希望最終購買的項(xiàng)目列表,并包括客戶ID、項(xiàng)目ID和項(xiàng)目添加日期在相應(yīng)的愿望單表中。目錄服務(wù)負(fù)責(zé)維護(hù)公司銷售的所有項(xiàng)目,并包括項(xiàng)目ID、項(xiàng)目描述和靜態(tài)產(chǎn)品維度信息,如重量、高度、長(zhǎng)度等。

在這個(gè)示例中,當(dāng)客戶請(qǐng)求顯示他們的愿望單時(shí),項(xiàng)目ID和項(xiàng)目描述(item_desc)都會(huì)返回給客戶。然而,愿望單服務(wù)的表中沒有項(xiàng)目描述;該數(shù)據(jù)由目錄服務(wù)擁有,在提供更改控制和數(shù)據(jù)所有權(quán)的緊密形成的有界上下文中。

服務(wù)間通信模式

服務(wù)間通信模式是分布式系統(tǒng)中最常見的用于訪問數(shù)據(jù)的模式。如果一個(gè)服務(wù)(或系統(tǒng))需要讀取它無法直接訪問的數(shù)據(jù),它只需通過某種遠(yuǎn)程訪問協(xié)議向擁有該數(shù)據(jù)的服務(wù)或系統(tǒng)請(qǐng)求數(shù)據(jù)。

請(qǐng)注意,對(duì)于每個(gè)獲取客戶愿望單的請(qǐng)求,愿望單服務(wù)必須進(jìn)行遠(yuǎn)程調(diào)用以從目錄服務(wù)獲取項(xiàng)目描述。這種模式出現(xiàn)的第一個(gè)問題是由于網(wǎng)絡(luò)延遲、安全延遲和數(shù)據(jù)延遲而導(dǎo)致的性能較慢。

  • 網(wǎng)絡(luò)延遲是到達(dá)和從服務(wù)的分組傳輸時(shí)間。
  • 安全延遲發(fā)生在需要額外授權(quán)才能執(zhí)行請(qǐng)求的目標(biāo)服務(wù)的端點(diǎn)。
  • 數(shù)據(jù)延遲描述了需要進(jìn)行多次數(shù)據(jù)庫調(diào)用以檢索傳遞給最終用戶所需信息的情況。

這種模式的另一個(gè)重要缺點(diǎn)是服務(wù)耦合。因?yàn)樵竿麊伪仨氁蕾囉谀夸浄?wù)是否可用,所以這兩個(gè)服務(wù)在語義上和靜態(tài)上都是耦合的,這意味著如果目錄服務(wù)不可用,愿望單服務(wù)也不可用。此外,由于愿望單服務(wù)與目錄服務(wù)之間的緊密靜態(tài)耦合,愿望單服務(wù)隨著需求量的增加而擴(kuò)展,目錄服務(wù)也必須擴(kuò)展。

列模式復(fù)制模式

使用列模式復(fù)制模式,列被復(fù)制到表格中,從而復(fù)制數(shù)據(jù)并使其可用于其他有界上下文。

數(shù)據(jù)同步和數(shù)據(jù)一致性是與列模式復(fù)制數(shù)據(jù)訪問模式相關(guān)的兩個(gè)最大問題。每當(dāng)創(chuàng)建產(chǎn)品、從目錄中刪除產(chǎn)品或更改產(chǎn)品描述時(shí),目錄服務(wù)必須以某種方式通知愿望單服務(wù)(和任何其他復(fù)制數(shù)據(jù)的服務(wù))進(jìn)行更改。通常,通過使用隊(duì)列、主題或事件流進(jìn)行異步通信來完成這一點(diǎn)。

這種模式的另一個(gè)挑戰(zhàn)是很難管理數(shù)據(jù)所有權(quán)。因?yàn)閿?shù)據(jù)復(fù)制在屬于其他服務(wù)的表格中,這些服務(wù)可以更新數(shù)據(jù),即使它們并沒有正式擁有數(shù)據(jù)。這反過來又帶來了更多的數(shù)據(jù)一致性問題。

盡管一般情況下我們警告不要在愿望單服務(wù)和目錄服務(wù)示例等情況下使用這種數(shù)據(jù)訪問模式,但在某些情況下可能需要考慮使用它,例如數(shù)據(jù)聚合、報(bào)告或其他數(shù)據(jù)訪問模式不適合的情況,因?yàn)閿?shù)據(jù)量大,響應(yīng)要求高或容錯(cuò)要求高。

復(fù)制緩存模式

這種模式利用復(fù)制的內(nèi)存緩存,使其他服務(wù)所需的數(shù)據(jù)可用于每個(gè)服務(wù),而無需請(qǐng)求它們。復(fù)制緩存與其他緩存模型不同,因?yàn)閿?shù)據(jù)保留在每個(gè)服務(wù)的內(nèi)存中,并持續(xù)同步,以便所有服務(wù)在任何時(shí)候都具有相同的數(shù)據(jù)。

讓我們與其他緩存模型進(jìn)行比較,以更好地理解它。單個(gè)內(nèi)存緩存模型是最簡(jiǎn)單的緩存形式,其中每個(gè)服務(wù)都有自己的內(nèi)部?jī)?nèi)存緩存。使用這種緩存模型,內(nèi)存數(shù)據(jù)在緩存之間不進(jìn)行同步,這意味著每個(gè)服務(wù)都有其自己的特定于該服務(wù)的唯一數(shù)據(jù)。盡管這種緩存模型有助于提高每個(gè)服務(wù)內(nèi)部的響應(yīng)性和可伸縮性,但由于缺乏緩存之間的同步,對(duì)于共享數(shù)據(jù)而言并不有用。

在分布式架構(gòu)中使用的另一種分布式緩存。正如此緩存模型所示,數(shù)據(jù)不存儲(chǔ)。

在每個(gè)服務(wù)的內(nèi)存中,而是存儲(chǔ)在緩存服務(wù)器中。服務(wù)使用專有協(xié)議向緩存服務(wù)器發(fā)出請(qǐng)求以檢索或更新共享數(shù)據(jù)。請(qǐng)注意,與單個(gè)內(nèi)存緩存模型不同,數(shù)據(jù)可以在服務(wù)之間共享。

使用復(fù)制緩存,每個(gè)服務(wù)都有自己的內(nèi)存數(shù)據(jù),在服務(wù)之間保持同步,允許多個(gè)服務(wù)之間共享相同的數(shù)據(jù)。

那么復(fù)制緩存是如何工作的呢?為了解決分布式數(shù)據(jù)訪問問題,讓我們回到愿望單服務(wù)和目錄服務(wù)的示例。目錄服務(wù)擁有產(chǎn)品描述的內(nèi)存緩存(這意味著它是唯一可以修改緩存的服務(wù)),愿望單服務(wù)包含相同緩存的只讀內(nèi)存副本。

有了這種模式,愿望單服務(wù)不再需要調(diào)用目錄服務(wù)以檢索產(chǎn)品描述 — 它們已經(jīng)在愿望單服務(wù)的內(nèi)存中。當(dāng)目錄服務(wù)對(duì)產(chǎn)品描述進(jìn)行更新時(shí),緩存產(chǎn)品將更新愿望單服務(wù)中的緩存以使數(shù)據(jù)一致。

復(fù)制緩存模式的明顯優(yōu)勢(shì)在于響應(yīng)性、容錯(cuò)性和可伸縮性。由于服務(wù)之間不需要明確的服務(wù)間通信,數(shù)據(jù)隨時(shí)在內(nèi)存中可用,提供了對(duì)不擁有數(shù)據(jù)的服務(wù)最快的數(shù)據(jù)訪問。

這種模式的第一個(gè)權(quán)衡是與緩存數(shù)據(jù)和啟動(dòng)時(shí)間相關(guān)的服務(wù)依賴性。由于目錄服務(wù)擁有緩存并負(fù)責(zé)填充緩存,所以在初始愿望單服務(wù)啟動(dòng)時(shí),目錄服務(wù)必須在運(yùn)行時(shí)。如果目錄服務(wù)不可用,初始愿望單服務(wù)必須進(jìn)入等待狀態(tài),直到與目錄服務(wù)建立連接。

這種模式的第二個(gè)權(quán)衡是數(shù)據(jù)量。如果數(shù)據(jù)量太大(如超過500 MB),則這種模式的可行性會(huì)迅速減小,特別是對(duì)于需要數(shù)據(jù)的多個(gè)服務(wù)的多個(gè)實(shí)例。

第三個(gè)權(quán)衡是,如果數(shù)據(jù)的更改率(更新率)太高,復(fù)制緩存模型通常不能在服務(wù)之間保持?jǐn)?shù)據(jù)完全同步。

總結(jié)

  • 服務(wù)間通信模式:這是最常見的分布式系統(tǒng)中的數(shù)據(jù)訪問模式,其中一個(gè)服務(wù)需要讀取其他服務(wù)擁有的數(shù)據(jù)時(shí),通過遠(yuǎn)程訪問協(xié)議向擁有數(shù)據(jù)的服務(wù)請(qǐng)求數(shù)據(jù)。然而,這種模式存在性能較慢、服務(wù)耦合等問題。
  • 列模式復(fù)制模式:這個(gè)模式涉及將數(shù)據(jù)列復(fù)制到不同的表中,以使數(shù)據(jù)可用于其他有界上下文。但它面臨數(shù)據(jù)同步和數(shù)據(jù)一致性的挑戰(zhàn),因?yàn)閿?shù)據(jù)的更改需要異步通信來通知其他服務(wù),這可能導(dǎo)致數(shù)據(jù)一致性問題。
  • 復(fù)制緩存模式:這種模式利用內(nèi)存緩存,使多個(gè)服務(wù)能夠共享相同的數(shù)據(jù),而無需顯式請(qǐng)求。這提供了高響應(yīng)性、容錯(cuò)性和可伸縮性,但也帶來了服務(wù)依賴性和數(shù)據(jù)量等權(quán)衡問題。

每種模式都有其適用的場(chǎng)景和權(quán)衡,選擇合適的數(shù)據(jù)訪問模式取決于具體的需求和約束。

責(zé)任編輯:趙寧寧 來源: 小技術(shù)君
相關(guān)推薦

2023-05-18 14:02:00

分布式系統(tǒng)冪等性

2022-04-14 10:24:27

分布式系統(tǒng)性能

2023-07-19 08:22:01

分布式系統(tǒng)數(shù)據(jù)

2023-10-08 10:49:16

搜索系統(tǒng)分布式系統(tǒng)

2021-06-11 17:19:06

分布式系統(tǒng)開發(fā)Web

2010-04-19 10:53:21

無線分布式系統(tǒng)

2019-09-05 09:02:45

消息系統(tǒng)緩存高可用

2022-04-07 17:13:09

緩存算法服務(wù)端

2018-10-29 12:51:35

分布式存儲(chǔ)元數(shù)據(jù)

2023-05-12 08:23:03

分布式系統(tǒng)網(wǎng)絡(luò)

2022-07-18 10:29:33

數(shù)據(jù)分布式系統(tǒng)

2015-05-26 11:18:06

分布式系統(tǒng)可擴(kuò)展性

2023-02-11 00:04:17

分布式系統(tǒng)安全

2024-10-18 08:00:00

分布式系統(tǒng)背壓數(shù)據(jù)庫

2018-12-14 10:06:22

緩存分布式系統(tǒng)

2017-12-12 14:51:15

分布式緩存設(shè)計(jì)

2013-01-07 10:29:31

大數(shù)據(jù)

2023-05-29 14:07:00

Zuul網(wǎng)關(guān)系統(tǒng)

2023-06-18 12:21:42

分布式系統(tǒng)模式架構(gòu)設(shè)計(jì)

2023-10-16 09:00:00

數(shù)據(jù)庫分布式系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品动漫一区 | 亚洲精品久久国产高清情趣图文 | 国产黄色小视频在线观看 | av天天看| 国产精品日产欧美久久久久 | 成人亚洲精品 | 91精品国产综合久久久久久首页 | 国产成人午夜精品影院游乐网 | 欧美亚洲国产一区二区三区 | 99这里只有精品视频 | 欧美精品一区二区在线观看 | 国内精品视频免费观看 | 久久九七 | 国产成人免费一区二区60岁 | 中文在线一区二区 | 在线区| 日本成人毛片 | av入口| 精品国产色| 欧美一区二区三区精品免费 | 国产不卡一区在线观看 | 夜夜爽99久久国产综合精品女不卡 | 日韩欧美一区二区三区 | 日韩高清一区 | 中文字幕在线播放第一页 | 久久国产精品一区 | 免费视频一区二区 | 国产精品美女久久久av超清 | 日韩精品一区在线观看 | 欧美一区二区大片 | 久久久久久久久久一区二区 | 亚洲高清在线观看 | 99国产视频 | 免费观看的黄色网址 | 99久久免费精品国产免费高清 | 亚洲欧美一区二区三区国产精品 | 国产成人精品一区二区三区视频 | 国产一区二区三区在线 | 亚洲图片一区二区三区 | 欧美另类视频 | 国产精品久久久久久久久久免费看 |