`
flyzonemu
  • 浏览: 34981 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

支付宝分布式事务初探

阅读更多
  最近有被人问到分布式事务的工作原理,由于从来没做过这方面的东西,只能胡乱猜测一番,结果当然是凌乱无比。

  刚好今天有支付宝的高手来分享支付宝的分布式事务。跑去听了一下,果然大有收获。在这里把今天听到的总结一下,也算是份课堂笔记吧!
 
  分布式事务,这个东西多半都是用在金融相关的系统上,应用的场景往往是多系统跨库。
  相关的业务对事务的一致性要求很高,涉及到钱的东西当然分毫不能有差。
  那么怎么来处理这些系统之间的事务。保证事务的一致性,原子性,持久性,隔离性呢?
 
  举个例子,支付宝有交易系统、账户系统、积分系统等多个子系统。
  当客户发起一笔交易时,需先在交易系统中插入交易记录,然后在账户系统中进行金额的增减,最后在积分系统中给加上最新的积分。
  实际的业务比这个更复杂。这三部中有任何一步失败,都需要进行回滚。那么怎么保证这三个事务会进行回滚呢?
 
  支付宝使用的是一个二段式的分布式事务
  第一阶段,通知各子系统进行业务的操作,比如可以在交易系统中对交易记录表拷贝一个副表,在副表中插入交易记录。如果执行成功,子系统返回成功的信息
 
   在这个中间还有一个很重要的角色就是有一个总调度者,他负责控制整个事务的流程。发起事务时首先要注册到调度者上,事务完成,或者回滚也是由调度者发起!

   接着上面的继续,当子系统第一阶段业务执行成功,返回成功给调度者,如果所有子系统都返回成功信息,者调度者通知子系统进行第二阶段的操作,讲数据插入主表中,如果有任何一个子系统返回失败的消息,则通知所有系统回滚。

   这是一个理想的状态,前提是每次业务操作都会完成,这样事务的一致性就可以保证,但是实际情况不是这样,比如服务器宕机,网络断掉等,会导致某一阶段不能完成
  
   这样会导致事务的不完整,所以我们还需要一个清道夫式的角色,来保证系统中事务的完整。实际上我们可以创建一个定时钟,定时去扫描所有的事务,遇到超时,或者不完整的事务,一律通知各子系统进行回滚,这样虽然有可能会导致误杀一些执行时间过长的事务,但是却保证了整个系统的事务一致,所以还是值得的。
  
   大致原理就是如此,具体的实现方式还是有很多技巧性的东西,在这里就不深入探讨了。
分享到:
评论
1 楼 ifuleyou49 2014-03-09  
这个副表拷贝是指什么意思呢

http://me.kimiazhu.info/post/web-dev/a-simple-design-of-distributed-transaction-system.html

这里这种做法貌似只要一个标志位,而且第二阶段的“提交”也可以免了的

相关推荐

    JOTM 分布式事务初探(JNDI,Tomcat 7 JDBC Pool连接池)

    NULL 博文链接:https://jackyin5918.iteye.com/blog/1922379

    电-热互联系统潮流分布式仿真初探.pdf

    魏仁杰在《电-热互联系统潮流分布式仿真初探》中探讨了电力系统和热力系统相结合的仿真问题,并提出了分布式仿真的思路。 关键词涵盖了电-热互联系统、潮流计算、分布式仿真等几个核心概念。其中,电-热互联系统指...

    构建大数据云计算平台分布式技术初探.pdf

    本文针对云计算平台中分布式存储、计算和数据库等关键技术的实现和性能指标进行了初步探讨。 在讨论分布式文件存储技术时,作者指出传统存储技术面临多种问题,比如文件系统功能和性能差强人意,难以实现全局互命名...

    大型电力企业基于GBase分布式数据仓库建设初探.pdf

    #资源达人分享计划#

    山区CDMA网络分布式基站建设初探.pdf

    分布式基站建设在山区CDMA网络中的重要性和优势: 1. 建设原则和需求分析: 山区因特殊地理条件,比如地形崎岖、交通不便,以及用户分布稀疏等特点,传统的CDMA宏基站建设成本和维护费用都相对较高。传统的宏基站...

    电力通信网络分布式管理技术初探.pdf

    电力通信网络分布式管理技术是现代电力系统中一个关键的组成部分,它的主要作用是确保电力系统的稳定运行和通信的高效性。随着电力行业的发展和信息技术的进步,电力通信网络经历了从传统的集中式管理到现代分布式...

    基于ArcSDE Oracle搭建分布式开发环境初探.pdf

    基于此,本文针对GIS传统开发环境的不足,提出了利用VMware虚拟机技术构建客户端/服务器结构,通过ArcSDE(空间数据引擎)和Oracle数据库系统搭建分布式开发环境的解决方案。 在讨论分布式开发环境之前,先介绍一些...

    JDBC的事务初探

    **JDBC事务初探** Java Database Connectivity (JDBC) 是Java平台中用于访问数据库的标准API。在处理数据库操作时,事务管理是确保数据一致性、完整性和持久性的重要机制。本篇将深入探讨JDBC中的事务处理,以及...

    基于CORBA的分布式应用软件网络性能初探——单次调用传输的数据量大小对有效吞吐量的影响.pdf

    《基于CORBA的分布式应用软件网络性能初探——单次调用传输的数据量大小对有效吞吐量的影响》 本文探讨了在分布式应用软件中,尤其是针对导航系统,基于CORBA(Common Object Request Broker Architecture)的...

    分布式光伏发电项目验收初探.pdf

    分布式光伏发电项目验收涉及到多个领域的专业知识,主要包括分布式光伏发电系统设计、施工、运行以及并网接入等方面。分布式光伏发电系统以太阳能为能源,将太阳能电池板安装在用户附近,将太阳能转换为电能供应负载...

    分布式电源的双向电能计量初探.pdf

    分布式电源的双向电能计量是指在电力系统中,当分布式电源如光伏发电、风力发电等接入电网时,既可以从电网获取电能,也可以向电网提供电能。这种运行模式下,电能的流向是双向的,因此传统的单向电能表已经不能满足...

    两类分布式优化问题关系初探.pdf

    分布式优化是现代信息技术领域中的一个重要研究方向,尤其在大规模数据处理和复杂系统协同工作中发挥着关键作用。本文主要探讨了两类分布式优化问题之间的关系,并利用拉格朗日对偶原理进行了深入分析。 第一类...

    未来海空分布式作战构想与力量运用初探.pdf

    分布式作战是一种适应未来高对抗环境下智能化作战的重要作战概念,源于美军的战略构想。在这种作战模式下,传统的以大型部队集中作战的模式将转变为更加灵活、去中心化的作战方式。分布式作战的核心在于运用多专业、...

    大型商业银行基于Hadoop分布式数据仓库建设初探.pdf

    1. Hadoop分布式文件系统(HDFS):HDFS是一种高吞吐量的分布式文件系统,它可以存储大量的数据,并在多个服务器之间进行数据的高效分配和备份。在大型商业银行的数据仓库构建中,HDFS被用来存储结构化和非结构化的...

    无锡市分布式供能系统发展初探.pdf

    分布式供能系统是指在用户现场或靠近用户现场利用一次能源进行小型或微型独立输出电、热(冷)能的系统,它能够有效地提高能源的使用效率,降低对环境的影响。分布式供能系统主要利用的能源包括天然气、生物质能、...

    分布式电源并网相关问题初探.pdf

    #资源达人分享计划#

    分布式网络地理信息系统初探.pdf

    #资源达人分享计划#

Global site tag (gtag.js) - Google Analytics