MST

星途 面试题库

面试题:微服务架构里分布式事务处理的一致性权衡

假设你正在设计一个电商微服务系统,涉及订单、库存、支付等多个微服务。在分布式事务处理时,需要在一致性、可用性和分区容错性之间做出权衡。如果业务更注重用户体验,希望在网络分区时也能尽量完成下单操作,你会采用哪种分布式事务处理策略,为什么?
49.3万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

采用最终一致性策略

  1. 原因
    • 可用性优先:业务注重用户体验,希望在网络分区时也能尽量完成下单操作,即优先保证系统的可用性。最终一致性策略允许在网络分区等情况下,各微服务可以独立进行操作,不会因为要确保强一致性而导致下单操作长时间等待或失败,能快速响应用户的下单请求,保证系统的可用性。
    • 满足业务场景:电商场景中,对于订单的下单操作,虽然最终库存和支付状态要保持一致,但短时间内的不一致是可以接受的。例如,用户下单后,库存可以稍后异步调整,支付结果也可以后续异步确认,只要最终各微服务数据一致即可,这符合最终一致性策略的特点。
    • 分区容错性保障:在分布式系统中分区容错性是必须要满足的。最终一致性策略可以在网络分区存在的情况下,允许各微服务继续运行,通过后续的补偿机制、异步消息等方式来达到数据最终一致,从而保障了分区容错性。 而如果追求强一致性,在网络分区时为了保证一致性可能需要暂停部分服务,这会影响可用性,不符合该业务注重用户体验尽量完成下单操作的要求。