基于分布式事务的账务处理方法及设备技术

技术编号:15330887 阅读:107 留言:0更新日期:2017-05-16 14:15
本申请的目的是提供一种基于分布式事务的账务处理方法及设备,具体地,首先根据本次账务处理中所有账户的净发生额确定风险账户,其中所述风险账户为本次账务处理中净发生额小于零的账户;然后对所述风险账户进行资金预处理;在完成所有风险账户的资金预处理之后,根据所有账户的净发生额对本次账务处理中的所有账户进行资金实际处理。与现有技术相比,由于其它非风险账户在本次账务处理过程中即使不与风险账户同步进行资金处理也不会发生资金风险,因此可以不对非风险账户进行资金预处理,而仅对所述风险账户进行资金预处理,由此可以减少账务处理过程中的同步处理步骤,降低资源开销,提高性能。

Accounting processing method and equipment based on distributed transaction

The aim of this application is to provide accounting treatment method and equipment, which is based on the distributed transaction details, according to the net amount of all accounts of the accounting treatment in determining risk account, wherein the risk accounts for the accounting treatment of the net amount of less than zero account; then the account risk fund pretreatment; after the completion of all pre funding account risk treatment, according to all accounts of the amount of net capital of all accounts of the accounting treatment in actual processing. Compared with the prior art, due to other non risk accounts in the accounting process even if not with risk capital account synchronization processing does not occur financial risk, so it can not account for the risk capital pretreatment, and only the risk of capital account pretreatment, which can reduce the accounting process of synchronous processing steps in, reduce resource overhead and improve performance.

【技术实现步骤摘要】
基于分布式事务的账务处理方法及设备
本申请涉及计算机领域,尤其涉及一种基于分布式事务的账务处理方法及设备。
技术介绍
在银行/第三方支付的支付处理过程中,经常会采用分布式事务机制来保证业务处理以及资金处理的一致性。分布式事务一般都是以两阶段提交作为技术基础,其第一阶段为准备阶段,在该阶段按每个事务参与者均完成相关的预处理,在所有事务参与者均完成了第一阶段的操作之后,执行第二阶段,即提交阶段,提交预处理的结果,完成实际的处理操作。在整个分布式事务的处理过程中,需要作为事务协调者的事务管理器与作为事务参与者的相关资源服务器之间进行多次协调通信,因此需要更多性能和资源开销。
技术实现思路
本申请的目的是提供一种基于分布式事务的账务处理方法及设备,以解决现有技术中性能和资源开销较多的问题。为实现上述目的,本申请提供了一种基于分布式事务的账务处理方法,该方法包括:根据本次账务处理中所有账户的净发生额确定风险账户,其中所述风险账户为本次账务处理中净发生额小于零的账户;对所述风险账户进行资金预处理;在完成所有风险账户的资金预处理之后,根据所有账户的净发生额对本次账务处理中的所有账户进行资金实际处理。进一步地,所述账务处理中的每个账户至少包括一次资金变动;根据本次账务处理中所有账户的净发生额确定风险账户,包括:若某一账户在任意一次资金变动后的净发生额小于零,则将该账户确定为风险账户。进一步地,对所述风险账户进行资金预处理,包括:根据所述风险账户的每一次资金变动对该风险账户进行资金预处理。进一步地,根据所述资金预处理的结果对本次账务处理中的所有账户进行资金实际处理之前,还包括:对本次账务处理中所有账户进行业务预处理。进一步地,在完成所有风险账户的资金预处理以及本次账务处理中所有账户的业务预处理之后,还包括:根据所述业务预处理的结果对本次账务处理中的所有账户进行业务实际处理。基于本申请的另一方面,还提供了一种基于分布式事务的账务处理设备,该设备包括:判断装置,用于根据本次账务处理中所有账户的净发生额确定风险账户,其中所述为本次账务处理中净发生额小于零的账户;第一处理装置,用于对所述风险账户进行资金预处理;第二处理装置,用于在完成所有风险账户的资金预处理之后,根据所述资金预处理的结果对本次账务处理中的所有账户进行资金实际处理。进一步地,所述账务处理中的每个账户至少包括一次资金变动;判断装置,用于当某一账户在任意一次资金变动后的净发生额小于零时,将该账户确定为风险账户。进一步地,所述第一处理装置,用于根据所述风险账户的每一次资金变动对该风险账户进行资金预处理。进一步地,所述第一处理装置,还用于在根据所述资金预处理的结果对本次账务处理中的所有账户进行资金实际处理之前,对本次账务处理中所有账户进行业务预处理。进一步地,所述第二处理装置,还用于在完成所有风险账户的资金预处理以及本次账务处理中所有账户的业务预处理之后,根据所述业务预处理的结果对本次账务处理中的所有账户进行业务实际处理。与现有技术相比,本申请的技术方案根据账务处理过程中账户的净发生额将某些特定的账户确定为风险账户,由于其它非风险账户在本次账务处理过程中即使不与风险账户同步进行资金处理也不会发生资金风险,因此可以不对非风险账户进行资金预处理,而仅对所述风险账户进行资金预处理,由此可以减少账务处理过程中的同步处理步骤,降低资源开销,提高性能。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本申请实施例提供的一种基于分布式事务的账务处理方法的流程图;图2为本申请实施例提供的另一种基于分布式事务的账务处理方法的流程图;图3为本申请实施例提供的一种基于分布式事务的账务处理设备的结构示意图;图4为本申请实施例中基于分布式事务的账务处理过程中各个节点之间的拓扑结构示意图;图5(a)为现有技术中基于分布式事务的账务处理过程中所涉及的各个节点在分布式事务的第一阶段的交互示意图;图5(b)为现有技术中基于分布式事务的账务处理过程中所涉及的各个节点在分布式事务的第一阶段的交互示意图;图6为本申请实施例提供的一种基于分布式事务的账务处理方法中所涉及的各个节点在分布式事务的第一阶段的交互示意图;附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式下面结合附图对本申请作进一步详细描述。图1示出了本申请实施例提供的基于分布式事务的账务处理方法,该方法包括以下步骤:步骤S101,根据本次账务处理中所有账户的净发生额确定风险账户,其中所述风险账户为本次账务处理中净发生额小于零的账户;步骤S102,对所述风险账户进行资金预处理。步骤S103,在完成所有风险账户的资金预处理之后,根据所有账户的净发生额对本次账务处理中的所有账户进行资金实际处理。在此,所述净发生额是指在账务处理过程中,某一账户在其资金发生变动后的资金额净值。该方法中,根据账务处理过程中账户的净发生额将某些特定的账户确定为风险账户,由于其它非风险账户在本次账务处理过程中即使不与风险账户同步进行资金处理也不会发生资金风险,因此可以不对非风险账户进行资金预处理,而仅对所述风险账户进行资金预处理,由此可以减少账务处理过程中的同步处理步骤,降低资源开销,提高性能。分布式事务一般都是以两阶段提交作为技术基础,其第一阶段为准备阶段,在该阶段按每个事务参与者均完成相关的预处理,在所有事务参与者均完成了第一阶段的操作之后,执行第二阶段,即提交阶段,提交预处理的结果,完成实际的处理操作,由此保证分布式事务的原子性(即各个事务参与者的处理要么全部完成,要么全部失败)。以一次转账过程中涉及的账务处理为例,账户A向账户B付款100元,账户B再向账户C付款50元。若账户A、B、C的对应的相关事务处理分别由资源服务器401、402和403执行,并由事务管理器400对所述资源服务器401、402和403的事务提交进行统一的管理,其拓扑结构如图4所示。若以现有方式进行处理,在分布式事务的第一阶段需要进行如下的预处理:1、对账户A做资金预留冻结100元,确保账户A有足够的余额;2、记录账户B未达到的资金100元;3、从账户B未达到的资金中扣除50元;4、记录账户C未到达的资金50元。在第一阶段,账户A、B、C对应的资源服务器401、402和403在本地执行各自的预处理操作,生成对应的事务日志,使得相应的事务在资源服务器本地完成,且处于待提交的状态,若顺利完成则向事务管理器400发送就绪消息,图5(a)示出了第一阶段的交互示意图。由此,仅需要在第二阶段提交事务即可完成资金的实际操作处理。当所有账户第一阶段的资金预处理都完成(事务管理器接收到本次账务处理涉及的所有资源服务器发送的就绪消息)之后,即可执行第二阶段的实际处理操作:1、账户A余额减少100元;2、账户B余额增加50元;3、账户C余额增加50元。由此完成本次转账。在第二阶段,事务管理器400会向各个资源管理器发送提交消息,资源服务器401、402和403在收到提交消息后将已经在本地完成且处于待提交状态的事务进行提交(即执行数据库的Commit命令),由此完成分布式事务第二阶段的实际处理,图5(b)示出了第二阶段的本文档来自技高网...
基于分布式事务的账务处理方法及设备

【技术保护点】
一种基于分布式事务的账务处理方法,其中,该方法包括:根据本次账务处理中所有账户的净发生额确定风险账户,其中所述风险账户为本次账务处理中净发生额小于零的账户;对所述风险账户进行资金预处理;在完成所有风险账户的资金预处理之后,根据所有账户的净发生额对本次账务处理中的所有账户进行资金实际处理。

【技术特征摘要】
1.一种基于分布式事务的账务处理方法,其中,该方法包括:根据本次账务处理中所有账户的净发生额确定风险账户,其中所述风险账户为本次账务处理中净发生额小于零的账户;对所述风险账户进行资金预处理;在完成所有风险账户的资金预处理之后,根据所有账户的净发生额对本次账务处理中的所有账户进行资金实际处理。2.根据权利要求1所述的方法,其中,所述账务处理中的每个账户至少包括一次资金变动;根据本次账务处理中所有账户的净发生额确定风险账户,包括:若某一账户在任意一次资金变动后的净发生额小于零,则将该账户确定为风险账户。3.根据权利要求2所述的方法,其中,对所述风险账户进行资金预处理,包括:根据所述风险账户的每一次资金变动对该风险账户进行资金预处理。4.根据权利要求1至3中任一项所述的方法,其中,根据所述资金预处理的结果对本次账务处理中的所有账户进行资金实际处理之前,还包括:对本次账务处理中所有账户进行业务预处理。5.根据权利要求4所述的方法,其中,在完成所有风险账户的资金预处理以及本次账务处理中所有账户的业务预处理之后,还包括:根据所述业务预处理的结果对本次账务处理中的所有账户进行业务实际处理。6.一种基于...

【专利技术属性】
技术研发人员:李铮
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1