一种适用于分布式系统的事务日志记录方法技术方案

技术编号:11367618 阅读:97 留言:0更新日期:2015-04-29 18:08
本发明专利技术涉及分布式计算技术领域,特别是一种适用于分布式系统的事务日志记录方法。本发明专利技术首先对分布式系统中的所有事务逻辑中需要做事物日志记录的事务和异步返回响应的事务逻辑进行标识;在事务开始前,给其分配一个唯一的标识;事务开始时,判断其是否为异步返回响应的事务,如果不是直接执行事务逻辑,根据结果写入事务日志记录;如果是,那么把事务的信息作为一个记录写入到一个临时表中,然后继续往下执行事务;最后对所有接收到的响应进行拦截,如果响应中的标识与临时表中某记录的标识一致,那么取出临时表中的相应记录,把响应中的事务执行结果更新到记录中,然后写入事务日志记录中。本发明专利技术解决了传统分布式系统执行事务时日志分散、格式不统一、难于管理的问题;可以用于分布式系统的事务日志记录。

【技术实现步骤摘要】
一种适用于分布式系统的事务日志记录方法
本专利技术涉及分布式计算
,特别是一种适用于分布式系统的事务日志记录方法。
技术介绍
在分布式系统中,由于一个事务可能需要多个组件协同完成。另外,事务执行时长存在不确定性,因此会给事务的日志记录带来很大的困难。首先,事务可能由用户发起,然后按顺序往下层的组件分发。也有可能由其中一个组件发起,往其他组件分发,比如定时执行的事务或者基于告警事件发起的处理事务等。其次,执行的事务有可能是长任务,分布式系统采用异步返回方式,不能同步获取事务执行的结果,也不能确定事务完成的时间点。因此,不能马上产生一个事务的完整日志。目前,没有专门针对分布式事务的日志记录方法,分布式系统的各个组件都分别进行日志记录,若要查看一个事务的完整日志记录,需要从不同的组件日志上获取。这种方法有如下的弊端:1、需要人工从多个组件的日志上筛选出一个事务的完整日志,若需要对日志进行审计,工作量较大,对运维人员排查故障也不利。2、不同组件产生的日志可能有其独特的格式,对产生的日志的管理过程将会非常复杂,增加了运营管理的困难。
技术实现思路
本专利技术解决的技术问题在于提供一种适用于分布式事务的日志记录方法,解决传统分布式系统执行事务时日志分散、格式不统一、难于管理的问题。本专利技术解决上述技术问题的技术方案是:所述的方法包括如下步骤:步骤1:对分布式系统中的所有事务逻辑中需要做事物日志记录的事务进行标识,并对异步返回响应的事务逻辑也进行标识;步骤2:在每个分布式事务开始前,给每个事务分配一个唯一的标识;步骤3:在所有事务开始时,对其进行拦截,判断其是否为异步返回响应的事务,如果不是,证明此事务为简单事务,不需要多个组件的协作,那么直接执行事务逻辑;然后根据事务逻辑的执行结果写入事务日志记录;如果是,证明此事务是长事务,执行结果需要异步返回,那么执行步骤4;步骤4:把事务的信息作为一个记录写入到一个临时表中,记录以事务的唯一标识作为标识,然后继续往下执行事务;步骤5:对分布式系统所有接收到的响应进行拦截,响应中包含请求中的事务唯一标识;如果响应中的标识与临时表中某记录的标识一致,那么取出临时表中的相应记录,把响应中的事务执行结果更新到记录中,然后写入事务日志记录中。所述事务的唯一标识指的是事务ID、对象ID、事务类型的组合;所述事务ID指的是为与其他事务进行区分而生成的唯一标识符;所述对象ID指的是事务所针对的虚拟机、逻辑卷等对象的唯一标识符;所述事务类型指的是针对对象所执行的操作。所述简单事务指的是只需要在一个组件内完成,且执行的结果是同步返回的事务。所述执行结果异步返回指的是事务请求发送后由于执行时间过长或无法预测,在并不知道执行结果的情况下先返回,后续需要另外通过监听的手段获取执行结果。本专利技术可以带来如下的有益效果:1、本专利技术的方法能产生集中的完整的事务日志记录,可使用此日志记录进行审计,并且可以大大减少运维人员故障排查的工作量。2、本专利技术的方法能产生统一格式的事务日志记录,便于管理。附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术方法流程图。具体实施方式见图1所示,本专利技术的流程是:步骤1:对分布式系统中的所有事务逻辑中需要做事物日志记录的事务进行标识,并对异步返回响应的事务逻辑也进行标识;步骤2:在每个分布式事务开始前,给每个事务分配一个唯一的标识;步骤3:在所有事务开始时,对其进行拦截,判断其是否为异步返回响应的事务,如果不是,证明此事务为简单事务,不需要多个组件的协作,那么直接执行事务逻辑;然后根据事务逻辑的执行结果写入事务日志记录;如果是,证明此事务是长事务,执行结果需要异步返回,那么执行步骤4;步骤4;把事务的信息作为一个记录写入到一个临时表中,记录以事务的唯一标识作为标识,然后继续往下执行事务;步骤5:对分布式系统所有接收到的响应进行拦截,响应中包含请求中的事务唯一标识;如果响应中的标识与临时表中某记录的标识一致,那么取出临时表中的相应记录,把响应中的事务执行结果更新到记录中,然后写入事务日志记录中。本专利技术的实现方式有多种,下面以Java的AOP技术作为拦截,Struts作为Web框架为例,说明其中一种实现方式:1、使用注解对需要做事物日志记录的事务逻辑进行标识,并对异步返回响应的事务逻辑也进行标识2、给每个事务分配一个唯一的标识3、对事务进行拦截并判断事务是否异步返回4、对响应进行拦截并写入事务日志记录本文档来自技高网...
一种适用于分布式系统的事务日志记录方法

【技术保护点】
一种适用于分布式系统的事务日志记录方法,其特征在于:所述的方法包括如下步骤:步骤1:对分布式系统中的所有事务逻辑中需要做事物日志记录的事务进行标识,并对异步返回响应的事务逻辑也进行标识;步骤2:在每个分布式事务开始前,给每个事务分配一个唯一的标识;步骤3:在所有事务开始时,对其进行拦截,判断其是否为异步返回响应的事务,如果不是,证明此事务为简单事务,不需要多个组件的协作,那么直接执行事务逻辑;然后根据事务逻辑的执行结果写入事务日志记录;如果是,证明此事务是长事务,执行结果需要异步返回,那么执行步骤4;步骤4:把事务的信息作为一个记录写入到一个临时表中,记录以事务的唯一标识作为标识,然后继续往下执行事务;步骤5:对分布式系统所有接收到的响应进行拦截,响应中包含请求中的事务唯一标识;如果响应中的标识与临时表中某记录的标识一致,那么取出临时表中的相应记录,把响应中的事务执行结果更新到记录中,然后写入事务日志记录中。

【技术特征摘要】
1.一种适用于分布式系统的事务日志记录方法,其特征在于:所述的方法包括如下步骤:步骤1:对分布式系统中的所有事务逻辑中需要做事物日志记录的事务进行标识,并对异步返回响应的事务逻辑也进行标识;步骤2:在每个分布式事务开始前,给每个事务分配一个唯一的标识;步骤3:在所有事务开始时,对其进行拦截,判断其是否为异步返回响应的事务,如果不是,证明此事务为简单事务,不需要多个组件的协作,那么直接执行事务逻辑;然后根据事务逻辑的执行结果写入事务日志记录;如果是,证明此事务是长事务,执行结果需要异步返回,那么执行步骤4;步骤4:把事务的信息作为一个记录写入到一个临时表中,记录以事务的唯一标识作为标识,然后继续往下执行事务;步骤5:对分布式...

【专利技术属性】
技术研发人员:莫展鹏杨松季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:广东;44

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

1