28、微服务与系统架构:从CAP定理到CQRS的深度解析

微服务与系统架构:从CAP定理到CQRS的深度解析

1. 分布式系统的通信挑战

在分布式系统中,存在着一个著名的CAP定理,它指出分布式数据存储无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三个约束条件,最多只能保证其中两个。这一理论对分布式系统的通信产生了深远影响。

企业系统通常需要在其用例中保持一致性,业务逻辑应将整个系统从一个一致状态转换到另一个不同的一致状态。在分布式系统中,要实现整体一致状态,与外部交互的用例必须确保所调用的外部逻辑也遵循一致性,这就导致了分布式事务的出现。系统中被调用的用例将以“全有或全无”的方式执行,涉及所有外部系统。这意味着在每个分布式应用成功履行其职责之前,所有涉及的分布式功能都需要被锁定。

然而,这种方法并不具备良好的可扩展性。由于系统是分布式的,事务协调需要通过可能较慢的网络进行,这会引入瓶颈,导致参与的应用程序需要长时间阻塞和等待。一般来说,同步、一致的通信仅适用于一次涉及不超过两个应用程序的情况。性能测试和生产经验可以表明所选的通信场景是否能在给定的用例和环境中良好扩展。

为了实现可扩展性,异步通信应运而生。异步通信的分布式系统在定义上不会始终保持一致。异步通信可以在逻辑层面进行,同步调用仅启动业务逻辑,而无需等待一致的结果。

2. CRUD 系统的局限性

传统的企业应用通常基于原子的创建、读取、更新和删除(CRUD)模型构建。系统的当前状态,包括领域实体的状态,都反映在关系数据库中。当一个领域实体被更新时,该实体的新状态(包括其所有属性)会被存入数据库,旧状态则被覆盖。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值