【技术实现步骤摘要】
一种分布式事务处理方法及装置
本专利技术属于分布式计算
,涉及一种分布式事务处理方法及装置,特别涉及一种基于流式计算的分布式事务处理方法及装置。
技术介绍
相关术语解释:事务(Transaction):一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begintransaction和endtransaction语句(或函数调用)来界定。事务由事务开始(begintransaction)和事务结束(endtransaction)之间执行的全体操作组成。事务处理(TransactionProcessing):在许多大型、关键的应用程序中,计算机每秒钟都在执行大量的任务。更为经常的不是这些任务本身,而是将这些任务结合在一起完成一个业务要求,称为事务。如果能成功地执行一个任务,而在第二个或第三个相关的任务中出现错误,将会发生什么?这个错误很可能使系统处于不一致状态。这时事务变得非常重要,它能使系统摆脱这种不一致的状态。CICS、Tuxedo和TopEnd等产品都是事务处理系统的例子,它们为应用程序提供事务服务。流式计算(StreamComputing):在传统的数据处理流程中,总是先收集数据,然后将数据放到数据库(DB)中。当人们需要的时候通过DB对数据做查询(query),得到答案或进行相关的处理, ...
【技术保护点】
1.一种分布式事务处理方法,其特征在于,包括:设置应用的步骤:在分布式系统中布置实现事务处理所需的若干应用,所述各应用在分布式系统中设有本地事务数据源;事务管理属性定义的步骤:根据事务处理的需求定义事务管理属性;事件定义的步骤:将事务处理中的若干特定状态变化定义为事件;流式计算的步骤:通过流式计算实时获取并识别事件的信息,并实时获取事务管理属性,根据事件的信息和事务管理属性定期验证事务状态并根据事务状态发起查证请求和/或冲正请求;事务管理的步骤:事务管理器根据查证请求向各应用发送事务状态查证指令,和/或根据冲正请求向各应用的事务数据源发送事务冲正指令。
【技术特征摘要】
1.一种分布式事务处理方法,其特征在于,包括:设置应用的步骤:在分布式系统中布置实现事务处理所需的若干应用,所述各应用在分布式系统中设有本地事务数据源;事务管理属性定义的步骤:根据事务处理的需求定义事务管理属性;事件定义的步骤:将事务处理中的若干特定状态变化定义为事件;流式计算的步骤:通过流式计算实时获取并识别事件的信息,并实时获取事务管理属性,根据事件的信息和事务管理属性定期验证事务状态并根据事务状态发起查证请求和/或冲正请求;事务管理的步骤:事务管理器根据查证请求向各应用发送事务状态查证指令,和/或根据冲正请求向各应用的事务数据源发送事务冲正指令。2.根据权利要求1所述的分布式事务处理方法,其特征在于:在所述设置应用的步骤中,所述应用包括一个分布式事务协调者和若干分布式事务参与者,所述分布式事务协调者是分布式事务的发起方和提交方,其通过事务API、注解或事务定义文件的方式开启分布式事务;所述分布式事务协调者和各分布式事务参与者通过事务ID实现对下游事务参与者的远程调用。3.根据权利要求2所述的分布式事务处理方法,其特征在于:所述事务ID包括全局事务ID(UOW_Global_ID)、本地事务ID(UOW_Local_ID)和分支号(Span_id),所述各应用全局事务ID相同,分布式事务协调者的分支号默认为0,分支号按照应用间的上下游关系逐渐递增,所述分布式事务参与者基于全局事务ID(UOW_id)和分支号(Span_id)生成本地事务ID,并传递给下游分布式事务参与者。4.根据权利要求3所述的分布式事务处理方法,其特征在于:所述事务管理属性定义的步骤在所述各应用中和/或在所述事务管理器中进行,所述事务管理属性包括事务名称、事务传播属性、事务隔离属性、超时设置、回滚控制、提交控制、只读配置、未明状态策略中的一种或多种。5.根据权利要求4所述的分布式事务处理方法,其特征在于:在事件定义的步骤中,所述事件包括事务开始事件、事务结束事件、异常事件、应用调用事件、应用被调用事件、应用持久层事件、事务数据源持久化事件中的一种或多种;其中:所述事务开始事件的信息包括事务ID、应用信息、时间信息中的一种或多种;所述事务结束事件的信息包括事务ID、应用信息、时间信息、事务结果中的一种或多种;所述异常事件指未被应用捕获事务处理结果的事务运行状态;应用调用事件的信息包括事务ID、调用方应用信息、被调用方应用信息、时间信息中的一种或多种;所述应用被调用事件的信息包括事务ID、调用方应用信息、被调用方应用信息、时间信息中的一种或多种;所述应用持久层事件的信息包括事务ID、会话信息中的一种多或多种;所述事务数据源持久化事件的信息包括会话信息、持久化日志中的一种或多种。6.根据权利要求5所述的分布式事务处理方法,其特征在于:在事件定义的步骤中,通过应用埋点技术或通信旁路技术生成各事件对应的事务日志,供流式计算步骤实时获取并识别事件的信息。7.根据权利要求1所述的分布式事务处理方法,其特征在于:所述流式计算通过ApacheStorm,SparkStreaming,Flink,Flume,Kafka中的一种或多种流式计算平台实现。8.根据权利要求5所述的分布式事务处理方法,其特征在于:所述流式计算的步骤通过以下方式实现:实时采集事件的信息,识别事务开启事件,并从应用或者事务管理器中获取事务管理属性,缓存事务处理过程中的所有事务性持久化信息,并定期进行事务状态验证:1)如果分布式事务协调者提交事务,通过流式计算确认所有应用中的事务数据源的完成情况,以完成事务提交;如果确认结果为完成,清理缓存数据;否则发送查证请求给事务处理器;2)如果分布式事务协调者回滚事务,通过流式计算确认所有应用中事务数据源均完成回滚操作:如果确认,清理缓存数据;否则向事务管理器发送回滚请求,由事务管理器向对应事务数据源发起回滚指令;3)如果分布式事务协调者在事务超时周期内未发起提交或者回滚,事务进入未明状态,此时通过流式计算判断事务管理属性中的未明状态策略,如果策略为回滚,通过流式计算检查各应用中的事务源状态,对未回滚的事务数据源生成回...
【专利技术属性】
技术研发人员:周北春,朱清沂,周竣涛,孟德君,
申请(专利权)人:中信百信银行股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。