最终一致性:为什么微服务成为数字化架构

技术架构的演进,源自对商业本质认识的深化。微服务不仅是一套技术方案,更是一种数字时代的商业逻辑:每一次互动、每一个意图,都在塑造商业价值和品牌未来。

陈加兴
陈加兴

StrategyLogic创始人

在今天的商业世界中,分布式架构和微服务几乎成为所有数字化先锋企业的标配。是因为它们在技术上更先进,还是有着更深刻的底层逻辑?让我们从一个广为流传却充满误导的业务处理案例开始,揭开这个问题的真实答案。

1 一个订单、库存与信用处理案例

最近一篇广为流传的文章,用一个销售订单的创建过程来对比单体架构与微服务架构的差异。文章假设这样一个场景:

客户下单后,系统依次创建订单、扣减库存、检查信用额度。

当最后一步信用不足时,两种架构采取了完全不同的处理方式:

  • 在传统的SAP单体架构中,数据库会执行回滚操作——撤销之前所有的写入,仿佛什么都没有发生过
  • 而在微服务架构中,需要通过复杂的补偿事务机制:信用服务发布失败事件,库存服务需要把扣掉的库存加回去,订单服务需要将订单状态更新为取消。

这个案例被用来证明微服务在事务处理上的复杂性和脆弱性。

然而,稍有经验的业务系统设计者都会发现:这个案例本身的处理过程就是错误的

在真实的业务逻辑中,信用检查应该在库存扣减之前进行,这不仅是基本的风险控制原则,也是业务常识。

这种将最关键的业务验证放在最后一步处理,不像是一位系统架构师的设计,更像是一个实施顾问编写的蹩脚SQL脚本——只关注快糙猛模块调用,并没有真正理解业务逻辑和处理条件。

回滚的代价

现在让我们思考一个更关键的问题:如果采用事务回滚机制——在信用不足时清除所有操作痕迹,这对业务意味着什么?

首先是商业机会的永久丢失。系统不知道曾经有客户试图购买,不知道在什么时间点因为什么原因放弃,这些本可用于优化风控策略、调整库存规划、改进用户体验的宝贵数据消失了。

其次是客户体验的中断。客户花费时间选择的商品、填写的地址、比较的配送选项,在点击提交后全部归零。在最需要建立信任的时刻,系统给出的是一堵冷漠的技术之墙。

再次是内部效率的降低。销售或客服人员需要重新收集已经提供过的信息,重复已经被执行过的操作,整个业务链条因为一次技术性的回滚而产生了不必要的摩擦。

2 数字化设计:让异常成为业务流程的一部分

让我们重新设计这个流程。在真正的数字化系统中,当客户提交订单时:

第一步,系统会立即进行快速的信用检查。如果信用不足,系统不会简单地拒绝,而是会启动一个信用审核流程——订单状态转为待审核,客户立即收到通知:“您的订单已收到,正在优先处理中”,同时系统自动生成审核工单,根据预设规则分配给相应人员或进入自动决策流程。

第二步,在信用检查通过或进入审核流程的同时,系统会对库存进行预占而非扣减。这种预占通常有时效性,比如15分钟或30分钟,它保证了在客户决策期间商品不会被他人买走,同时又避免了长期锁定库存。

第三步,订单被创建并处于明确的中间状态——审核中 待付款预占成功。无论最终结果如何,这个订单意图已经被系统捕获,成为了可追踪、可管理、可分析的业务对象。

设计触及系统构建背后的哲学差异,以及它们所服务的业务模式与时代背景

信息化系统:记录已经发生的事情

  • 设计哲学:只记录确定无误的业务事实。任何不满足所有前置条件的尝试,都被视为无效动作,不应在核心系统中留下任何痕迹。
  • 错误处理撤销重来是标准操作。材料不全、格式不对,直接拒收,不留档案。只有材料齐全、审核通过,才会盖章生效。
  • 典型体现:信用不足 → “这笔交易不存在,请重新申请”
  • 适用场景:内部管理流程,如财务记账、正式合同。

数字化系统:让事情持续发生

  • 设计哲学:每一次交互都是机会。包括尝试、失败、等待、补偿等所有状态,都是一个有意义的事件,是驱动后续动作(如通知、补货)的证据和触发器。
  • 错误处理转化升级是标准操作。从需求提出、评审、排期、开发到测试,每一步(包括被驳回、重新修改)都被记录、通知相关方,并驱动下一步工作。过程本身就是价值。
  • 典型体现:信用不足 → “发现业务机会,启动B方案”
  • 适用场景:客户直连业务,如客户下单、在线签约、自助服务。

数字化设计的核心原则是:让系统流程真正还原现实业务过程,现实商业中没有完美的处理,而是充满了各种异常和误操作。

3 最终一致性:不是架构设计,而是业务管理

微服务成为数字化业务的架构基石,不是因为技术更先进,而是因为它背后天然需要统一分布式架构的最终一致性,更真实地反映了数字商业的运行方式

交易(Transaction),只是业务流程(Business Process)中的一个处理环节,它具有瞬时性。

在真实的商业世界中,几乎没有什么是瞬间完成的。订单从意向到成交有时间跨度,物流从接单到送达有物理过程,服务从请求到完成有执行周期。

业务处理逻辑决定事务设计

微服务架构与单体数据库比较的不是事务处理方式的优劣,而是事务作为记录事务作为过程的业务处理逻辑根本差异。

维度 SAP/单体架构 微服务/分布式架构
业务目标 确保记录正确,避免错误事实产生。 确保流程推进,捕捉每一个业务意图并驱动响应。
对失败的处理 消除。视为噪声,通过回滚抹去,不污染核心数据。 记录并转化。视为有价值的输入,生成工单、通知、告警,转化为新的业务流程(如信用申请、采购建议)。
数据一致性 强一致性(状态一致):所有看到的数据都是已生效的最终态。 最终一致性(过程一致):系统状态最终会收敛,但过程中允许存在有意义的中间态(如待审核库存锁定中)。
业务连续性 牺牲局部连续性。因为一个环节(如信用)的失败会导致整个流程重置,用户需要重新开始。 提升整体连续性。一个环节的失败会触发备用路径或通知,流程以另一种形式(如转为人工审核)继续,用户无需重复操作。
反映的业务现实 批处理时代的业务:信息集中、步骤线性、强调内部控制和事后核算。 实时流交互时代的业务:信息分散、步骤并行且异步、强调用户体验和即时响应。

强一致性追求的是将所有步骤压缩到一个技术处理瞬间,这本质上是记录型系统将商业复杂性强行削足,以适应关系型数据库的技术局限。最终一致性则满足商业过程的时间性差异,用分布式技术来支撑而非简化业务现实

适应数字化业务管理

传统的信息化系统产生于信息技术尚未广泛普及的年代,比如订单由内部员工接到电话或邮件后录入,然后看到系统提示,再通知相关采购者或供应商。

而数字化时代大多数用户以及企业业务都已经“在线”,越来越多地转向以实时流交互形态的数字化业务,它有三个鲜明特征:

  1. 客户体验不容打断。客户购买的不只是商品本身,更是从浏览、比价、咨询到收货、售后全过程的体验。当用户点击提交,期待的是收到而不是重试

数字化系统需要支撑的是完整的用户旅程,而不仅是记录交易动作。

  1. 业务机会转瞬即逝。留住购买意图比保证数据完美更重要。一次失败的交易尝试,可能隐藏着新客户的第一次接触、老客户的紧急需求、价格敏感度的测试机会。库存不足不是简单的报错,而是启动预售、推荐替代、通知补货的业务触发器。支付失败不是流程终点,而是引导分期、连接客服、提升体验的转换点。

数字化业务的机会管理,不是过滤掉不完美的请求,而是尽可能地将每个意图转化为可管理的业务流程。

  1. 运营效率依赖系统。每一个中间状态——浏览时长、比价次数、放弃原因——都是优化产品、服务和运营的燃料。
  • 传统业务逻辑:失败 → 人工跟进 → 重新开始
  • 数字业务逻辑:失败 → 系统自动升级 → 流程继续

数字化企业的核心竞争力,很大程度上取决于将过程数据转化为运营效率的能力。

4 数字商业:架构是顶层思维

微服务和分布式架构的流行,反映的不仅仅是技术选择的变迁,更是商业范式的转换。当企业从生产产品转向运营用户,从执行流程转向创造体验,从优化效率转向捕捉机会时,它们需要的企业技术支撑必然是不同的。

在数字商业时代,优秀的架构师必须具备看透三种结构的能力:业务过程、系统架构、数据逻辑。这三种结构必须对齐,任何错位都会导致系统与业务的脱节。

  • 业务过程回答价值如何流动:客户需求如何被感知,服务如何被交付,问题如何被解决。这是架构设计的起点和终点。
  • 系统架构回答能力如何组织:哪些功能应该独立部署,哪些服务需要紧密耦合,哪些交互可以异步进行。这是支撑业务过程的技术实现。
  • 数据逻辑回答信息如何增值:哪些数据应该实时一致,哪些可以最终收敛,哪些状态需要持久保存。这是驱动业务和系统优化的燃料。

今天的架构师不再只是技术专家,他们必须是商业的理解者、流程的设计者、价值的运载者。他们的核心责任不是选择正确的技术,而是设计合适的系统——能够真实反映业务逻辑、灵活适应市场变化、持续创造客户价值的系统。

技术架构的演进,最终是对商业本质认识的深化。当我们选择微服务时,选择的不仅是一套技术方案,更是一种对数字时代商业逻辑的承诺:在这个时代,每一次互动都值得认真对待,每一个意图都蕴含商业价值,每一个过程都在塑造品牌未来。

最终一致性:为什么微服务成为数字化架构 | StrategyLogic AI