微服务数据管理:从集中式到分布式的转变
1. 集中式共享数据库与单体应用
在企业架构中,基于单体应用和服务的场景下,多个应用和服务常常共享一个或几个集中式数据库。例如,零售系统的所有服务都共享一个集中式数据库(Retail DB),产品、客户、订单、支付等所有信息都通过该数据库进行集中管理。
集中式共享数据库具有一定优势:
- 数据组合便捷 :强大的查询语言(如 SQL)支持数据共享和构建不同的数据组合,可轻松对多个表进行复杂条件的连接操作,创建不同实体的复合视图。
- 事务处理简单 :在处理共享业务实体时,以事务方式实现业务交互很重要。事务具有 ACID 特性(原子性、一致性、隔离性和持久性),集中式数据库能轻松实现跨多个实体的 ACID 事务,大多数关系型数据库管理系统(RDBMS)都原生支持此类功能。
然而,集中式共享数据库也存在明显缺点:
- 单点故障 :一旦数据库出现问题,整个系统将受影响。
- 性能瓶颈 :大量应用流量集中到单个数据库,可能导致性能瓶颈。
- 应用依赖紧密 :多个应用共享相同的数据库表,相互依赖程度高,难以构建自主独立的微服务。
2. 每个微服务一个数据库
微服务架构鼓励每个微服务拥有自己独立的数据存储,不与其他服务共享数据库。每个微服务可以使用独立的数据存储或持久化服务(如来自云提供商的服务)。
这种模式带来了诸多好处:
-
超级会员免费看
订阅专栏 解锁全文
170万+

被折叠的 条评论
为什么被折叠?



