- 微服务设计-服务共享数据库
- 微服务设计模式-主页
- 微服务设计模式-概述
- 微服务设计- 按业务能力分解
- 微服务设计-按子域分解
- 微服务设计-Strangler分解
- 微服务设计- API网关设计
- 微服务设计-聚合器
- 微服务设计-代理模式
- 微服务设计-客户端UI组件
- 微服务设计- 责任链
- 微服务设计模式 - 分支设计
- 每个服务的数据库
- 微服务设计-服务共享数据库
- 命令查询责任隔离程序
- 微服务设计模式 - Saga
- 同步消息传递
- 微服务设计-活动来源
- 微服务设计-日志聚合
- 微服务设计-性能指标
- 分布式跟踪
- 微服务设计-健康检查
- 微服务设计-外部配置
- 微服务设计-服务发现模式
- 微服务设计-断路器模式
- 蓝绿色部署
- 微服务设计模式-快速指南
- 微服务设计模式-讨论
微服务设计-服务共享数据库
问题陈述
微服务架构将应用程序构建为一组松散耦合的微服务,每个服务都可以以敏捷的方式独立开发,以实现持续的交付/部署。基于微服务的应用程序中的数据库结构/体系结构应该是什么。
我们可以使用在微服务之间共享的数据库。每个服务都可以免费使用其他服务可访问的数据。数据库将维护 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
在这里,订单服务使用数据库交易来确保在订购期间检查客户的信用额度。