TL; DR服務是否應該選擇將數據保存在本地數據庫中,或者每次從數據源發出的服務請求數據?微服務架構:查詢服務或數據備份
讓我們來看一個網絡商店/訂購應用程序的一般示例。服務A是用戶會話管理服務。它處理用戶正在做什麼的業務邏輯,他可以做什麼等等。用戶可以創建自己的襯衫以供購買。服務B是一個數據聚合器,包含大量的庫存和可用的數據。
用戶開始創建一件襯衫,因此服務來自服務B的請求,可用的樣式/顏色。服務B發送服務A然後顯示給用戶的可能選擇的列表。用戶然後選擇一個,定製它並移動到新的襯衫上。再次,服務A必須從服務B請求什麼樣式/顏色可用。
現在讓我們假設在用戶會話的生命週期內,這些樣式/顏色不會改變,我們知道這將是一次又一次檢索的相同數據。不僅僅是這個用戶,而是所有的用戶。因此,在這種情況下,由於樣式/顏色實際上是服務B的域的一部分,所以他們應該呆在那裏並住在那裏,或者建議防止所有這些不必要的呼叫,並且在第一次請求(暫時)保存在服務A中用於會話生命週期的數據以防止聊天服務。
這是一個過分簡化的例子,但問題仍然是現實世界。哪個更適合架構這種設計? 這通常適用於某些相當靜態的數據正在通過某些服務時,並且此服務將在這些事務的生命週期內再次需要此數據幾次。所以我不確定服務是否應該在生命週期中臨時保存它,以知道數據不會改變,或者不關心它是否在生命週期內發生變化,或者選擇更多健談的服務並且每次都要求提供請求。