簡體   English   中英

數據和數據庫架構——從單體架構轉向微服務

[英]Data & Database Architecture - Moving from a monolithic architecture to microservices

我有一個關於數據架構和數據庫的小問題。

我們有一個中央數據庫。 它連接到 API。 這個數據庫鏈接到一個單一的應用程序,我們正試圖將它分解成幾個服務。

我們有一個 API,我們稱之為“Api1”。 這個 API 將管理不同的信息,包括省份。

我們還有另一個 API,我們稱之為“Api2”,它將管理數據,如應用程序。

在此處輸入圖像描述

這些應用程序在數據庫中鏈接到一個省。 到目前為止,此 Api2 將直接連接到與 Api1 相同的數據庫。 我們想結束這種做事方式,這不是最理想的。

那么,我們如何使用來自另一個數據庫的外鍵來保持這種連接和這種參照完整性呢? 我們應該將信息從數據庫 1 復制到數據庫 2,還是應該斷開數據庫鏈接,並包含一個 HTTP 調用以從 API 更新此信息,從而將“province_id”FK 字段僅轉換為 INT?

我的問題有點復雜,但在我看來這個主題有點復雜,提前感謝您的回答!

克里斯托夫

在這種情況下,沒有直接的方法來保持這種參照完整性。 有幾種選擇:-

  1. 只需刪除參照完整性並將 id 保留為 INT 即可。 如果我們不直接在 App2 中使用 App1 數據,我們可以選擇該選項。 僅供參考。
  2. 復制數據。 這里我們需要確保 App1 的數據是 Source of Truth 並且 Replicate 副本是只讀的。
  3. 選項 1 和一項檢查數據庫是否包含有效數據的后端服務。

根據我的經驗,大多數情況下使用選項 1,然后使用選項 2 和 3。此外,復雜性級別也以相同的順序增加。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM