16、读写分离架构:从理论到实践的深入剖析

读写分离架构:从理论到实践的深入剖析

1. 读写需求差异与一致性探讨

在软件开发中,我们常常会遇到读写操作的不同需求。以电商场景为例,写操作涉及订单处理、库存分配等复杂业务逻辑,而读操作则主要是为用户提供商品信息展示。

在 MADE.com 的系统中,订单处理和库存分配是一个复杂的过程。在繁忙的一天里,每小时可能处理一百个订单,同时每秒可能有一百次商品浏览。对于商品浏览,用户可能不会在意查询结果有几秒的延迟,但如果库存分配服务出现不一致,就会导致订单混乱。

为了提高读操作的性能,我们可以采用最终一致性的策略。但很多开发者会担心读操作的一致性问题。下面通过几个场景来分析:
- 场景一 :当 Bob 访问不对称梳妆台页面时,“获取可用库存”查询结果已经过时 30 秒,而此时 Harry 已经买走了最后一件商品。当尝试分配 Bob 的订单时,就会失败,我们只能取消订单或者补货延迟交付。
- 场景二 :Bob 和 Harry 同时访问页面,Harry 去泡咖啡,回来时 Bob 已经买走了最后一件梳妆台。当 Harry 下单时,由于库存不足,我们只能退款或者补货延迟交付。
- 场景三 :即使我们构建了一个完全一致的 Web 应用,Harry 先下单买走了梳妆台,但在仓库发货时,家具从叉车掉落损坏。此时我们也只能退款或者补货延迟交付。

从这些场景可以看出,软件系统与现实情况总是存在不一致性,我们需要业务流程来处理这些边缘情况。因此,在读取端用性能换取一致性是可行的,因为陈旧数据几乎是不可避免的。

读写操作的差异

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值