
每個服務共享資料庫
問題陳述
微服務架構將應用程式構建為一組鬆散耦合的微服務,並且可以以敏捷的方式獨立開發每個服務,以實現持續交付/部署。基於微服務的應用程式中應該採用哪種資料庫結構/架構。
解決方案
我們可以使用一個在微服務之間共享的資料庫。每個服務都可以免費使用可供其他服務訪問的資料。資料庫將維護 ACID 事務。

在此模式中,每個服務都應該使用底層資料庫的事務管理,從而可以使用資料庫的 ACID 屬性。考慮以下虛擬碼:
BEGIN TRANSACTION … SELECT * FROM ORDERS WHERE CUSTOMER_ID = ? … SELECT CREDIT_LIMIT FROM CUSTOMERS WHERE CUSTOMER_ID = ? … INSERT INTO ORDERS ... WHERE ORDER_LIMIT < CREDIT_LIMIT … COMMIT TRANSACTION
此處,訂單服務使用資料庫事務來確保在訂單期間檢查客戶的信用額度。
廣告