微服務體系結構建議每個服務都應該處理它自己的數據。因此,依賴於其他服務(服務B)擁有的數據的任何服務(服務A)都應該訪問這些數據,而不是直接進行數據庫調用,而是通過第二服務(服務B)提供的API來訪問。微服務:如何處理外鍵關係
那麼微服務最佳實踐在檢查外鍵約束時提出了什麼建議。
示例:我正在開發產品的交付功能(microservice 1),並且某些產品僅可交付到產品表中提到的某些位置(僅適用於產品微服務(mircoservice 2))。
如何確保微服務1(即交付功能)不會將訂單交給非服務地點。我有這個問題,因爲交付功能不能直接訪問產品數據庫,所以當交貨單放入交貨數據庫時,在數據庫層面沒有適用的限制條件(無法檢查產品數據庫中是否存在外鍵匹配或表)。
偉大的答案。我使用API調用,但它也需要對來自其他服務的數據進行排序和分頁。你知道這種情況的最佳方法嗎? – tranceholic
您應該將與分頁和排序相關的參數添加到您的api中。然後,使用正確順序獲取正確頁面的責任將由api的消費者承擔。有一些技術用於定義像GraphQL這樣的api。據我所知,這些技術已經具有排序和分頁功能。如果您不使用這種技術,您可以簡單地從客戶端獲取參數並使用它們返回按頁面排序的數據。 –