分布式环境下基于两阶段事务消息的顺序调用方法及装置制造方法及图纸

技术编号:23890141 阅读:58 留言:0更新日期:2020-04-22 06:07
本发明专利技术提供了一种分布式环境下基于两阶段事务消息的顺序调用方法,所述方法包含:获取待处理的事务的消息类型;当所述事务的消息类型为顺序敏感类型时,获得各节点所处理的事务消息的处理时序的序列键;接收节点输出的准备消息,将所述准备消息缓存至本地后,反馈准备消息响应至对应节点;接收节点输出的确认消息,根据所述确认消息获得缓存在本地的所述准备消息中的事务消息;将所述事务消息与所述序列键所对应的事务消息进行比较;当所述事务消息在所述序列键中所处位置符合预设规定时,将所述确认消息中的处理结果输出至分布式事务处理链的下游节点。

Sequential call method and device based on two-stage transaction message in distributed environment

【技术实现步骤摘要】
分布式环境下基于两阶段事务消息的顺序调用方法及装置
本专利技术涉及数据处理领域,尤指一种分布式环境下基于两阶段事务消息的顺序调用方法及装置。
技术介绍
随着社会和经济的发展,IT软件系统为满足日益增长的业务需求,同时保证可维护性,不可避免的需要进行模块化拆分。每个模块都有配套的数据源以供其读写。而无论是否采用分布式架构,不同功能模块往往存在多个数据源。任何一项业务功能的完成几乎都需要多个模块协同工作。对于金融支付等一致性要求较高的业务场景,为了保证业务执行结果的一致性,需要同时对多个数据源进行读写,且读写结果必须同时成功或失败,不允许部分的成功。采用分布式架构的应用在原有的系统分层结构的基础上,通过负载均衡,多地部署等技术实现了系统的可扩展性和高可用性,但随着功能模块拆分粒度的细化,也不可避免的出现了分布式事务。从整体上看,这种跨多个服务的调用涉及多个数据源,其实也可以看作是一种特殊的分布式事务。目前针对这种场景主要有三种常见的实现方法:使用同步调用服务+冲正机制的方式,分布式事务方式(主要有2PC和TCC模型)。而近年来较为流行的分布式架构的应用,为了在可用性和一致性找到最佳的平衡点,更多的参照了一种折中BASE的设计思想:基本可用(BasicAvailable):系统并非完全不可用,允许损失部分可用性,如响应时间,或者部分功能。软状态(Softstate):允许在短时间内存在状态不一致,状态延时更新。最终一致性(Eventuallyconsistency):不一致状态不是永久的,最终将会变为一致。基于BASE思想设计的应用一般采用异步调用+消息队列的模式。在分布式环境下,由于各个应用节点的时钟差异和网络传输的不稳定性等原因,发送的消息不能保证完全按发送顺序到达消息队列,这对于需要根据消息进行计算的下游应用,其计算结果的正确性得不到保证。
技术实现思路
本专利技术目的在于提供一种分布式环境下基于两阶段事务消息的顺序调用方法及装置,可在分布式环境下基于两阶段可靠事务消息的顺序保证机制,在保证最终一致性的前提下,针对消息可能存在的乱序问题,保证其按预定顺序到达下游。为达上述目的,本专利技术所提供的分布式环境下基于两阶段事务消息的顺序调用方法,具体包含:获取待处理的事务的消息类型;当所述事务的消息类型为顺序敏感类型时,获得各节点所处理的事务消息的处理时序的序列键;接收节点输出的准备消息,将所述准备消息缓存至本地后,反馈准备消息响应至对应节点;接收节点输出的确认消息,根据所述确认消息获得缓存在本地的所述准备消息中的事务消息;将所述事务消息与所述序列键所对应的事务消息进行比较;当所述事务消息在所述序列键中所处位置符合预设规定时,将所述确认消息中的处理结果输出至分布式事务处理链的下游节点。在上述分布式环境下基于两阶段事务消息的顺序调用方法中,优选的,所述接收节点输出的确认消息之前还包含:当接收到所述准备消息后,预定周期内未接收到所述确认消息时,根据所述准备消息获得对应的节点信息,向所述节点信息对应节点发起查询请求。在上述分布式环境下基于两阶段事务消息的顺序调用方法中,优选的,所述接收节点输出的确认消息之前还包含:接收节点输出的事务消息处理失败的取消消息,根据所述取消消息删除本地缓存的所述准备消息。在上述分布式环境下基于两阶段事务消息的顺序调用方法中,优选的,当所述事务消息在所述序列键中所处位置符合预设规定时,将所述确认消息中的处理结果输出至分布式事务处理链的下游节点还包含:当所述事务消息在所述序列键中所处位置不符合预设规定时,将所述确认消息中的处理结果缓存至本地;待所述事务消息在所述序列键中所处位置符合预设规定时,再将所述确认消息中的处理结果输出至分布式事务处理链的下游节点。在上述分布式环境下基于两阶段事务消息的顺序调用方法中,优选的,当所述事务消息在所述序列键中所处位置符合预设规定时,将所述确认消息中的处理结果输出至分布式事务处理链的下游节点还包含:根据前次将处理结果输出至分布式事务处理链的下游节点的到达时长和预设的配额时长建立发送缓存监测进程;通过所述缓存监测进程控制所述处理结果输出至分布式事务处理链的下游节点。本专利技术还提供一种分布式环境下基于两阶段事务消息的顺序调用方法,所述方法包含:获得待处理的事务消息,根据所述事务消息生成准备消息并将所述准备消息发送至聚合消息队列;根据聚合消息队列反馈的准备消息响应,对所述事务消息进行预设规则处理,获得处理结果;根据所述处理结果生成确认消息,将所述确认消息发送至所述聚合消息队列。在上述分布式环境下基于两阶段事务消息的顺序调用方法中,优选的,根据所述处理结果生成确认消息,将所述确认消息发送至所述聚合消息队列还包含:当所述处理结果为所述事务消息处理失败时,生成取消消息;将所述取消消息发送至所述聚合消息队列。本专利技术还提供一种分布式环境下基于两阶段事务消息的顺序调用装置,所述装置包含接收模块、判断模块、分析模块和比较输出模块;所述接收模块用于获取待处理的事务的消息类型;所述判断模块用于当所述事务的消息类型为顺序敏感类型时,获得各节点所处理的事务消息的处理时序的序列键;所述分析模块用于接收节点输出的准备消息,将所述准备消息缓存至本地后,反馈准备消息响应至对应节点;以及,接收节点输出的确认消息,根据所述确认消息获得缓存在本地的所述准备消息中的事务消息;所述比较输出模块用于将所述事务消息与所述序列键所对应的事务消息进行比较;当所述事务消息在所述序列键中所处位置符合预设规定时,将所述确认消息中的处理结果输出至分布式事务处理链的下游节点。在上述分布式环境下基于两阶段事务消息的顺序调用装置中,优选的,所述比较输出模块还包含查询单元,所述查询单元用于当接收到所述准备消息后,预定周期内未接收到所述确认消息时,根据所述准备消息获得对应的节点信息,向所述节点信息对应节点发起查询请求。在上述分布式环境下基于两阶段事务消息的顺序调用装置中,优选的,所述分析模块还包含:接收节点输出的事务消息处理失败的取消消息,根据所述取消消息删除本地缓存的所述准备消息。在上述分布式环境下基于两阶段事务消息的顺序调用装置中,优选的,所述比较输出模块还包含:当所述事务消息在所述序列键中所处位置不符合预设规定时,将所述确认消息中的处理结果缓存至本地;待所述事务消息在所述序列键中所处位置符合预设规定时,再将所述确认消息中的处理结果输出至分布式事务处理链的下游节点。在上述分布式环境下基于两阶段事务消息的顺序调用装置中,优选的,所述比较输出模块还包含缓冲单元,所述缓冲单元用于根据前次将处理结果输出至分布式事务处理链的下游节点的到达时长和预设的配额时长建立发送缓存监测进程;通过所述缓存监测进程控制所述处理结果输出至分布式事务处理链的下游节点。本专利技术还提供一种分布式环境下基于两阶段事务消息的顺序调用装置,所述装置包含采集模块、处理模块和发送模块;所述采集模块用于获得待处理的事务消息,根据所述事务消息生成准备消息并将所述准备消息发送至聚合消息队列;所述处理本文档来自技高网
...

【技术保护点】
1.一种分布式环境下基于两阶段事务消息的顺序调用方法,其特征在于,所述方法包含:/n获取待处理的事务的消息类型;/n当所述事务的消息类型为顺序敏感类型时,获得各节点所处理的事务消息的处理时序的序列键;/n接收节点输出的准备消息,将所述准备消息缓存至本地后,反馈准备消息响应至对应节点;/n接收节点输出的确认消息,根据所述确认消息获得缓存在本地的所述准备消息中的事务消息;/n将所述事务消息与所述序列键所对应的事务消息进行比较;/n当所述事务消息在所述序列键中所处位置符合预设规定时,将所述确认消息中的处理结果输出至分布式事务处理链的下游节点。/n

【技术特征摘要】
1.一种分布式环境下基于两阶段事务消息的顺序调用方法,其特征在于,所述方法包含:
获取待处理的事务的消息类型;
当所述事务的消息类型为顺序敏感类型时,获得各节点所处理的事务消息的处理时序的序列键;
接收节点输出的准备消息,将所述准备消息缓存至本地后,反馈准备消息响应至对应节点;
接收节点输出的确认消息,根据所述确认消息获得缓存在本地的所述准备消息中的事务消息;
将所述事务消息与所述序列键所对应的事务消息进行比较;
当所述事务消息在所述序列键中所处位置符合预设规定时,将所述确认消息中的处理结果输出至分布式事务处理链的下游节点。


2.根据权利要求1所述的分布式环境下基于两阶段事务消息的顺序调用方法,其特征在于,所述接收节点输出的确认消息之前还包含:
当接收到所述准备消息后,预定周期内未接收到所述确认消息时,根据所述准备消息获得对应的节点信息,向所述节点信息对应节点发起查询请求。


3.根据权利要求1所述的分布式环境下基于两阶段事务消息的顺序调用方法,其特征在于,所述接收节点输出的确认消息之前还包含:
接收节点输出的事务消息处理失败的取消消息,根据所述取消消息删除本地缓存的所述准备消息。


4.根据权利要求1所述的分布式环境下基于两阶段事务消息的顺序调用方法,其特征在于,当所述事务消息在所述序列键中所处位置符合预设规定时,将所述确认消息中的处理结果输出至分布式事务处理链的下游节点还包含:当所述事务消息在所述序列键中所处位置不符合预设规定时,将所述确认消息中的处理结果缓存至本地;待所述事务消息在所述序列键中所处位置符合预设规定时,再将所述确认消息中的处理结果输出至分布式事务处理链的下游节点。


5.根据权利要求1所述的分布式环境下基于两阶段事务消息的顺序调用方法,其特征在于,当所述事务消息在所述序列键中所处位置符合预设规定时,将所述确认消息中的处理结果输出至分布式事务处理链的下游节点还包含:
根据前次将处理结果输出至分布式事务处理链的下游节点的到达时长和预设的配额时长建立发送缓存监测进程;
通过所述缓存监测进程控制所述处理结果输出至分布式事务处理链的下游节点,当输出实际用时与配额时长差距较大时,动态调整配额时长。


6.一种分布式环境下基于两阶段事务消息的顺序调用方法,其特征在于,所述方法包含:
获得待处理的事务消息,根据所述事务消息生成准备消息并将所述准备消息发送至聚合消息队列;
根据聚合消息队列反馈的准备消息响应,对所述事务消息进行预设规则处理,获得处理结果;
根据所述处理结果生成确认消息,将所述确认消息发送至所述聚合消息队列。


7.根据权利要求6所述的分布式环境下基于两阶段事务消息的顺序调用方法,其特征在于,根据所述处理结果生成确认消息,将所述确认消息发送至所述聚合消息队列还包含:
当所述处理结果为所述事务消息处理失败时,生成取消消息;
将所述取消消息发送至所述聚合消息队列。


8.一种分布式环境下基于两阶段事务消息的顺序调用装置,其特征在于,所述装置包含接...

【专利技术属性】
技术研发人员:贺诗浩何鑫尧张强刘小齐雷鸣王赵羿刘广宇杜方举
申请(专利权)人:中国建设银行股份有限公司建信金融科技有限责任公司
类型:发明
国别省市:北京;11

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

1