93--分布式事务二-分布式事务介绍

什么是分布式事务

首先这是普通事务:
![事务]( https://img-blog.csdnimg.cn/20200725170613657.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODMwNTQ0MA==,size_16,color_FFFFFF,t_70#pic_center)

下面是分布式事务:

![分布式事务]( https://img-blog.csdnimg.cn/20200725170704723.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODMwNTQ0MA==,size_16,color_FFFFFF,t_70#pic_center)

在微服务系统中,每个微服务应用都可能会有自己的数据库,它们首先需要控制自己的本地事务。

一项业务操作可能会调用执行多个微服务。如何保证多个服务执行的多个数据库的操作整体成功或整体失败?这就是分布式事务要解决的问题。

CAP原则

请参考 百度百科 - CAP原则

![cap]( https://img-blog.csdnimg.cn/20200725172611970.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODMwNTQ0MA==,size_16,color_FFFFFF,t_70#pic_center)

在分布式系统中,由于网络原因出现子系统之间无法通信的情况,就会造成分区。一般分布式系统中必须容忍这种情况,那么就需要在A和C之间进行取舍。

在分布式事务中,

  • 如果保证CP,就意味着要让所有子系统的数据操作要么全部成功,要么全部失败,不允许有不一致的情况发生。但是强一致性会造成性能下降。
  • 如果保证AP,就意味着可以牺牲一定的一致性,允许在各个子系统中存在有的数据操作成功,有的数据操作失败的情况,只要通过后续处理,能够达到最终一致即可。

分布式事务方案

分布式事务有以下解决方案:

  • XA
  • TCC
  • Seata 框架 AT 事务
  • SAGA
  • 可靠消息最终一致性
  • 最大努力通知

主要对 Seata 框架 AT 事务TCC可靠消息最终一致性 三个方案进行实践。

![dt]( https://img-blog.csdnimg.cn/2020072516451946.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODMwNTQ0MA==,size_16,color_FFFFFF,t_70#pic_center)

posted on 2020-09-08 08:15  liqiangbk  阅读(181)  评论(0)    收藏  举报

导航