微服务设计-服务共享数据库

问题陈述

微服务架构将应用程序构建为一组松散耦合的微服务,每个服务都可以以敏捷的方式独立开发,以实现持续的交付/部署。基于微服务的应用程序中的数据库结构/体系结构应该是什么。

 

我们可以使用在微服务之间共享的数据库。每个服务都可以免费使用其他服务可访问的数据。数据库将维护 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

在这里,订单服务使用数据库交易来确保在订购期间检查客户的信用额度。