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

模塊化單體應用的數據隔離

系統 數據庫
模塊化單體通過定義良好的模塊邊界和通信模式來強制執行更好的架構實踐。但一個你不能忽視的方面是模塊之間的數據隔離,數據隔離確保模塊相互獨立且耦合度低。

模塊化單體應用是一種日益流行的架構方法,它結合了模塊化和單體設計的優點,模塊化單體試圖解決單體和微服務架構的不足之處。

我經常看到的單體架構問題之一是組件之間的緊耦合,這導致系統不同部分之間存在依賴關系。模塊化單體通過定義良好的模塊邊界和通信模式來強制執行更好的架構實踐。

但一個你不能忽視的方面是模塊之間的數據隔離,數據隔離確保模塊相互獨立且耦合度低。

今天,我將向你展示模塊化單體的四種數據隔離方法:

  • 分離表
  • 分離模式
  • 分離數據庫
  • 不同持久化

為什么數據隔離很重要?

首先讓我們了解在模塊化單體架構中為什么數據隔離很重要。

模塊化單體對數據完整性有嚴格的規定:

  • 每個模塊只能訪問自己的表
  • 沒有共享表或對象的情況
  • 只允許在同一模塊的表之間進行連接

模塊化單體中的模塊應該是自包含的。每個模塊處理自己的數據。其他模塊可以使用模塊的公共 API 訪問該數據。

這種設計有哪些好處呢?

保持模塊相互隔離有助于促進模塊化和松耦合。引入新的系統更改變得更容易。在組件松耦合時,副作用會減少。

如果你使用關系數據庫,你仍然可以保持參照完整性。提取表時移除外鍵不是問題。

等級 1 — 分離表

最簡單的解決方案是在數據庫級別沒有隔離。所有模塊的表都存儲在一個數據庫中。很難確定哪些表屬于哪個模塊。

我只是出于完整性考慮提到這種方法。

然而,表越多,保持它們在模塊之間的隔離就越困難。

你可以通過在表之間添加邏輯隔離來改進這一點。

等級 2 — 分離模式

在數據庫中分組相關的表是引入邏輯隔離的一種方式。你可以使用數據庫模式來實現這一點。每個模塊都有一個包含該模塊表的唯一模式。

現在,很容易區分哪個模塊包含哪些表。

使用多個 EF Core 數據庫上下文是實現此目的的一種簡單方法。

你還可以引入規則來阻止從其他模塊查詢數據。例如,你可以使用架構測試來實現這一點。

在構建模塊化單體時,我總是從邏輯數據隔離開始。

但如果這還不夠呢?

等級 3 — 分離數據庫

下一個數據隔離級別是將每個模塊的數據移至單獨的數據庫。與使用模式進行數據隔離相比,這種方法有更多的約束。

如果你需要模塊之間嚴格的數據隔離規則,這是正確的方法。但是,缺點是操作上更加復雜。你必須管理多個數據庫的基礎設施。

然而,這是提取模塊的絕佳步驟。

首先,你將要提取的模塊的表移動到單獨的數據庫中。這也迫使你解決模塊之間的任何數據庫耦合問題。一旦將表移動到單獨的數據庫,你就準備好提取該模塊了。

我們能否進一步實現模塊數據隔離?

等級 4 — 不同持久化

誰說你必須為所有模塊使用相同的數據庫類型?

我大多數時間都使用關系(SQL)數據庫。關系數據庫很棒,解決了各種問題。但有時,文檔或圖形數據庫是更好的解決方案。

這里的思路類似:使用單獨的數據庫進行數據隔離。

但是,你可以引入不同的數據庫類型來解決特定問題。例如,你可以為一個模塊使用關系數據庫,而為另一個模塊使用圖形或列存儲數據庫。你還必須在應用程序中維護不同的持久化模型。

對于你的使用案例來說,這可能是一種有價值的

權衡。但需要仔細規劃。

總結

如果你暫時不需要微服務,模塊化單體是一個很好的選擇。你可以將應用程序作為單體進行開發,并在系統內部建立明確的邊界。你仍然可以提取模塊并轉移到微服務。但是模塊化單體可以更快地進行開發。

模塊必須遵守一些規則。它們只能訪問自己的表。它們不能與其他模塊共享表。它們不能直接查詢其他模塊的表。這些規則有助于實現模塊之間的數據隔離。

但是你仍然必須在數據庫級別實現數據隔離。

有四種選項供你選擇:

?分離表?分離模式?分離數據庫?不同持久化

我總是選擇使用模式進行邏輯隔離。這很容易實現,并幫助我更好地理解我的邊界。根據要求,我可以隨后引入單獨的數據庫。希望這有所幫助。

責任編輯:趙寧寧 來源: 小技術君
相關推薦

2022-09-21 11:51:26

模塊化應用

2023-12-19 22:29:37

架構微服務系統

2019-08-28 16:18:39

JavaScriptJS前端

2010-08-02 09:10:36

Flex模塊化

2016-12-21 17:02:35

數據中心MDC模塊化

2018-06-21 09:36:09

模塊化數據中心集中化

2020-09-18 09:02:32

前端模塊化

2020-09-17 10:30:21

前端模塊化組件

2009-12-03 20:15:13

模塊化路由器

2009-11-30 09:47:44

模塊化路由器

2016-12-02 15:56:36

模塊化數據中心

2018-03-01 15:24:43

模塊化數據中心機房

2022-06-10 10:38:07

數據中心模塊化設計服務器

2016-10-09 11:03:41

Javascript模塊化Web

2022-09-05 09:01:13

前端模塊化

2019-07-11 14:16:27

數據中心設計系統

2021-12-24 07:10:36

架構分層模塊化

2016-12-09 15:25:16

數據中心配電IT

2018-06-26 15:20:52

模塊化數據中心UPS

2022-02-14 10:58:16

模塊化數據中心數據中心
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片在线视频 | 日韩欧美一区二区在线播放 | 精品国产一区二区三区性色av | 麻豆一区一区三区四区 | 日韩激情一区 | 超碰人人91| 99爱在线观看 | 亚洲久草视频 | 日本不卡免费新一二三区 | 国产999精品久久久影片官网 | 久久久蜜桃 | 亚洲国产一区二区三区在线观看 | 欧美日在线 | 岛国在线免费观看 | 久久久久亚洲精品国产 | 91精品中文字幕一区二区三区 | 欧美精品一区三区 | 精品欧美一区二区三区久久久 | 日本中文字幕日韩精品免费 | 免费观看国产视频在线 | 中文字幕免费在线 | 伊人狠狠干 | av大片在线观看 | 日韩欧美在线观看 | 欧美一区二区 | 精品欧美色视频网站在线观看 | 亚洲综合在线视频 | 一区二区中文 | 久久新视频 | 中文字幕亚洲视频 | 欧美一区二区三 | 日韩中文欧美 | 国产精品亚洲成在人线 | 综合久久一区 | a级免费观看视频 | 国产精品久久毛片av大全日韩 | 亚洲国产成人精品久久久国产成人一区 | 青草福利 | 91久久精品国产免费一区 | 韩国欧洲一级毛片 | 成人在线精品 |