分布式事务 | 当我们要吃刀削面时我们在做些什么

Posted 程序范儿Style

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式事务 | 当我们要吃刀削面时我们在做些什么相关的知识,希望对你有一定的参考价值。

当我们要去面馆吃刀削面的时候我们在做些什么?


  1. 下单(点菜,支付);

  2. 上菜(吃饭)。


无非就是上面这两步骤,而且这两步要么都发生要么都不发生。


这也就是今天要和大家聊的第一个内容很像——事务(Transaction)。


事务是指作为单个逻辑工作单元执行的一系列操作,其特性是这一系列的操作要么都执行,要么都不执行。


而今天要介绍的另一个名词就叫「分布式事务」,分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。

分布式事务 | 当我们要吃刀削面时我们在做些什么

这概念是如何产生的?


通常我们要做一个电商平台的话,但是这样一个平台放在单机上的数据量就显得非常大,如果很多人同时操作平台的话,操作起来就会有很多不便。

 

这时我们通常会对整个平台进行拆解,分离出了订单中心、用户中心、库存中心。


对于订单中心,有专门的数据库存储订单信息,用户中心也有专门的数据库存储用户信息,库存中心也会有专门的数据库存储库存信息。

 

这时候如果要同时对订单和库存进行操作,那么就会涉及到订单数据库和库存数据库,为了保证数据一致性,就需要用到分布式事务了。

分布式事务 | 当我们要吃刀削面时我们在做些什么

处理分布式事务的目标就是要实现「最终一致性」,这里我们再次用刚才的刀削面的栗子来说得更通俗点。


我们到面馆点菜下单的时候,服务员一般都会给你一个单子让你填写菜名,为什么?


因为面馆出菜的能力是有限的,是需要花时间的。如果面馆是等一位顾客点完才并且拿到菜,再让下一位点餐,那么出单量肯定高不了。


但是这样做以后,哪怕出菜稍微慢一点,同样时间内,订单的数量,收到的钱都会增加,只是想要吃到东西就需要等上一等了。


只要愿意等,最终都会吃到东西;不愿意等,有刚才的单子在,退钱。


看完这个栗子大家应该差不多就明白了吧。


餐厅的这一做法就是分布式事务的一种思路,最终都会吃到东西便是实现了这「最终一致性」。


好啦。关于分布式事务,今天就给大家介绍到这儿,改天再来给大家分享一些具体的分布式事务模型。


技术分享者

分布式事务 | 当我们要吃刀削面时我们在做些什么

小川

直立人科技有限公司

技术经理



想要了解更多的知识干货

那就关注

程序范儿 Style

以上是关于分布式事务 | 当我们要吃刀削面时我们在做些什么的主要内容,如果未能解决你的问题,请参考以下文章

当我们刚开始我们的码农生涯时,我们该做些什么

分布式事务的解决方案

分布式系统—什么是分布式事务

为什么说传统分布式事务不再适用于微服务架构?

面对 DDoS 攻击,我们能做些什么?

SpringBoot 分布式事务的解决方案(JTA+Atomic+多数据源)