分布式事务解决方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分布式事务解决方法
宝子,今天咱们来唠唠分布式事务的解决方法呀。

咱先说说两阶段提交(2PC)。

这就像是一群小伙伴要一起做个大事儿,有个老大先出来说,“大家都准备好啊。

”这就是第一阶段,预提交阶段,各个节点都准备好自己要做的事儿,然后给老大个回应,说“行嘞,我这儿准备妥啦”或者“有点问题呢”。

要是大家都准备好了,老大就会喊一声“冲啊,开干”,这就是第二阶段提交阶段啦。

不过呢,2PC有个小毛病,要是老大在喊完准备之后挂掉了,那大家就只能干等着,可着急了。

还有消息队列呢。

这就像是传小纸条。

一个服务把要做的事儿写成小纸条(消息)放到队列里,另一个服务就从队列里拿小纸条去做事儿。

如果事务失败了,这个小纸条还在队列里,可以重新处理。

不过呢,消息队列处理事务得小心消息丢失或者重复消费的问题,就像小纸条可能被风吹走或者被多个人看到了一样。

最后说说 Saga模式。

这模式就像是讲故事一样,一个大事务被拆成了很多个小事务,每个小事务都有自己的执行逻辑和补偿逻辑。

如果中间某个小事务失败了,就按照相反的顺序去执行补偿事务,把之前做的事儿给撤回。

比如说你要去旅游,先订机票,再订酒店,要是酒店订不上了,那就把机票退了呗。

宝子,这些分布式事务的解决方法都各有各的优缺点,在实际应用的时候呢,得根据具体的场景去选择最适合的那个方法。

这样才能让咱们的系统稳稳当当的,不会出啥乱子呢。

相关文档
最新文档