一种云计算下分布式数据库保持事务一致性的方法技术

技术编号:12577214 阅读:90 留言:0更新日期:2015-12-23 16:56
本发明专利技术公开一种云计算下分布式数据库保持事务一致性的方法,属于数据库管理技术领域;本发明专利技术云计算下,在前分布式服务接收业务数据请求,进行业务数据逻辑处理,并产生本地消息,同时将消息记录在本地日志中,生成一个本地事务;同时将消息分发给需要配合执行事务的在后分布式服务中,在后服务的执行器按照消息要求对事务进行逻辑处理,同时更新业务数据库的数据信息,记录消息处理状态,并同时通知服务调用者删除本地日志中的消息,避免重复发送;本发明专利技术能够提高并发访问量,解决现有方法中由于中心节点转发消息带来的性能下降,由于引入本地日志与消息管理模块,还可以在服务故障后,保证事务的重新提交,并且能够避免事务的重复提交。

【技术实现步骤摘要】

本专利技术公开,属于数据库管理

技术介绍
云计算是基于网络来提供服务的新兴技术,云计算需要不同的组件来提供服务,而这些组件都是以服务接口的方式来插入到云计算架构的实现中,而这些组件的开发也可能由不同的云服务提供商来提供,所以其后端数据库的数据一致性就必须得到保障,否则云计算的业务数据可能会混乱不堪。设想服务A组件与服务B组件共同完成一项任务,当A服务组件更新了本地数据库实例的数据后,而服务B没有这么做,那么系统数据就会紊乱,有些事情就无从查证,导致作业任务无法完成。目前保持分布式数据库事务一致性的方法,通常会在服务A与服务B之间架设一个中心节点模块C,该中心模块负责勾连两服务间的消息通信,当应用程序请求时,C先将消息记录在本地日志中,然后转发消息给A与B,A与B同时都处理成功并返回yes给C后,C再次发送消息给A与B,进行提交。当在提交阶段某服务出现问题返回no时,C还要通知所有服务进行回滚操作,这种方法有多次提交与消息交互,网络通信时间太长,当事务时间太长时,锁定的资源时间也加长,造成服务提供能力减弱,性能下降等问题。本专利技术提供,设置消息管理模块用于维护消息的状态变化,当服务A产生消息发送到服务B时,服务B的消息处理状态会随着业务逻辑的处理编程处理成功或者失败状态,基于消息来保证分布式数据库事务的一致性,能够提高并发访问量,解决传统方法中由于中心节点C转发消息带来的性能下降,由于引入本地日志与消息管理模块,还可以在服务故障后,保证事务的重新提交,并且能够避免事务的重复提交。
技术实现思路
本专利技术针对目前保持分布式数据库事务一致性的方法,多次提交与消息交互,网络通信时间太长,当事务时间太长时,锁定的资源时间也加长,造成服务提供能力减弱,性能下降等问题,提供,解决现有方法中转发消息带来的性能下降,导致效率低下的问题,还可以在服务故障后,保证事务的重新提交,并且能够避免事务的重复提交。本专利技术提出的具体方案是: : 云计算下,在前分布式服务接收业务数据请求,进行业务数据逻辑处理,并产生本地消息,同时将消息记录在本地日志中,生成一个本地事务;同时将消息分发给需要配合执行事务的在后分布式服务中,在后服务的执行器按照消息要求对事务进行逻辑处理,同时更新业务数据库的数据信息,记录消息处理状态,并同时通知服务调用者删除本地日志中的消息,避免重复发送。当在前分布式服务出现故障,在后分布式服务维护接收到的在前服务的消息,当在前服务恢复后,发出消息,在后服务检查该消息是否已经处理过,若处理过则丢弃该消息。—种云计算下分布式数据库保持事务一致性的系统,包括服务执行器模块和消息管理模块, 其中服务执行器模块负责云计算下,在前分布式服务接收业务数据请求,进行业务数据逻辑处理,并产生本地消息,同时将消息记录在本地日志中,生成一个本地事务; 消息管理模块负责将消息分发给需要配合执行事务的在后分布式服务中,在后服务的执行器按照消息要求对事务进行逻辑处理,同时更新业务数据库的数据信息,记录消息处理状态,并同时通知服务调用者删除本地日志中的消息,避免重复发送。当在前分布式服务出现故障,消息管理模块使在后分布式服务维护接收到的在前服务的消息,当在前服务恢复后,发出消息,在后服务检查该消息是否已经处理过,若处理过则丢弃该消息。本专利技术的有益之处是: 本专利技术云计算下,在前分布式服务接收业务数据请求,进行业务数据逻辑处理,并产生本地消息,同时将消息记录在本地日志中,生成一个本地事务;同时将消息分发给需要配合执行事务的在后分布式服务中,在后服务的执行器按照消息要求对事务进行逻辑处理,同时更新业务数据库的数据信息,记录消息处理状态,并同时通知服务调用者删除本地日志中的消息,避免重复发送;本专利技术能够提高并发访问量,解决传统方法中由于中心节点转发消息带来的性能下降,由于引入本地日志与消息管理模块,还可以在服务故障后,保证事务的重新提交,并且能够避免事务的重复提交。【附图说明】图1本专利技术方法的流程示意图。【具体实施方式】: 云计算下,在前分布式服务接收业务数据请求,进行业务数据逻辑处理,并产生本地消息,同时将消息记录在本地日志中,生成一个本地事务;同时将消息分发给需要配合执行事务的在后分布式服务中,在后服务的执行器按照消息要求对事务进行逻辑处理,同时更新业务数据库的数据信息,记录消息处理状态,并同时通知服务调用者删除本地日志中的消息,避免重复发送。—种云计算下分布式数据库保持事务一致性的系统,包括服务执行器模块和消息管理模块, 其中服务执行器模块负责云计算下,在前分布式服务接收业务数据请求,进行业务数据逻辑处理,并产生本地消息,同时将消息记录在本地日志中,生成一个本地事务; 消息管理模块负责将消息分发给需要配合执行事务的在后分布式服务中,在后服务的执行器按照消息要求对事务进行逻辑处理,同时更新业务数据库的数据信息,记录消息处理状态,并同时通知服务调用者删除本地日志中的消息,避免重复发送。利用上述方法及系统,结合附图对本专利技术做一步说明。本专利技术系统包括:服务执行器模块、消息管理模块。服务执行器模块负责云计算下,在前分布式服务接收业务数据请求,进行业务数据逻辑处理,并产生本地消息,同时将消息记录在本地日志中,生成一个本地事务; 消息管理模块负责将消息分发给需要配合执行事务的在后分布式服务中,在后服务的执行器按照消息要求对事务进行逻辑处理,同时更新业务数据库的数据信息,记录消息处理状态,并同时通知服务调用者删除本地日志中的消息,避免重复发送。利用本专利技术系统,参照附图中,当服务A产生消息发送到服务B时,服务B的消息处理状态会随着业务逻辑的处理编程处理成功或者失败状态,如附图1所示。在前服务A向在后服务B发送了 3个消息分别是消息1、消息2、消息3,服务B对事务进行逻辑处理,同时更新业务数据库的数据信息,记录消息处理状态,其中消息I和消息2的处理状态都是yes,则通知服务A删除消息I和消息2,避免重复发送,而消息3记录状态为no,因此服务A还会发送消息3给服务B,直到服务B中事务数据与服务A数据一致; 服务B记录消息状态:当消息刚产生时,记录到服务A的本地日志中,这样当服务A突然停止服务时,可用于故障恢复;服务B也会维护接收到的服务A的消息考虑服务A在故障前发出了消息1,那么当服务A恢复后,再次发出消息I时,B要先检查一下消息I是否已经处理过,处理过即丢弃该消息,这样做的好处是可以避免消息重复处理,;当服务B处理完某消息后,返回给服务A,服务A要在本地日志中删除掉已处理的消息。【主权项】1.,其特征是 云计算下,在前分布式服务接收业务数据请求,进行业务数据逻辑处理,并产生本地消息,同时将消息记录在本地日志中,生成一个本地事务;同时将消息分发给需要配合执行事务的在后分布式服务中,在后服务的执行器按照消息要求对事务进行逻辑处理,同时更新业务数据库的数据信息,记录消息处理状态,并同时通知服务调用者删除本地日志中的消息,避免重复发送。2.根据权利要求1所述的,其特征是当在前分布式服务出现故障,在后分布式服务维护接收到的在前服务的消息,当在前服务恢复后,发出消息,在后服务检查该消息是否已经处理过,若处理过则丢弃该消息。3.—种云本文档来自技高网...

【技术保护点】
一种云计算下分布式数据库保持事务一致性的方法,其特征是云计算下,在前分布式服务接收业务数据请求,进行业务数据逻辑处理,并产生本地消息,同时将消息记录在本地日志中,生成一个本地事务;同时将消息分发给需要配合执行事务的在后分布式服务中,在后服务的执行器按照消息要求对事务进行逻辑处理,同时更新业务数据库的数据信息,记录消息处理状态,并同时通知服务调用者删除本地日志中的消息,避免重复发送。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡玉鹏刘俊朋郭锋李新虎于辉张兰英
申请(专利权)人:浪潮集团有限公司
类型:发明
国别省市:山东;37

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

1