一种分布式事务一致性解决方法及相关设备与流程

文档序号:17600764发布日期:2019-05-07 20:16阅读:250来源:国知局
一种分布式事务一致性解决方法及相关设备与流程

本发明涉及计算机技术领域,特别涉及一种分布式事务一致性解决方法及相关设备。



背景技术:

目前大型互联网平台通常由一系列分布式系统构成,开发语言平台和技术栈也相对较杂,尤其在soa和微服务架构盛行背景下,一个看起来简单的功能,内部可能需要调用多个“系统”并操作多个数据库来实现,情况往往较复杂,单一的技术手段和解决方案,已经无法应对和满足这些复杂的场景。

目前市场上的分布式系统多采用执行失败随即停止的程序脚本,出现执行失败的情况概率高,且无法及时找出问题发生的位置和原因,给设计和使用过程均造成不必要的麻烦,且造成了大量的人力、财力浪费。



技术实现要素:

基于此,有必要针对无法及时找出问题位置和原因,造成人力、财力浪费等问题,提供一种分布式事务一致性解决方法及相关设备。

一种分布式事务一致性解决方法,包括:

事务管理系统将事务发送至资源管理系统,所述事务包括事务指令、事务执行内容;

所述资源管理系统接收所述事务指令和所述事务执行内容,调取事务执行脚本,所述事务执行脚本依据所述事务指令执行所述事务执行内容,所述资源管理系统将所述事务执行脚本执行得到的执行结果生成事务日志;

所述资源管理系统将所述事务日志发送至分布式发布订阅消息系统,所述分布式发布订阅消息系统判断所述事务是否执行成功,当所述事务执行成功时,所述分布式发布订阅消息系统将所述事务执行成功结果反馈至所述资源管理系统;

当所述事务执行失败时,所述分布式发布订阅消息系统将所述事务日志发送至事务回滚系统,所述事务回滚系统判断所述事务是否存在可执行性,当所述事务可执行时,所述事务回滚系统将所述事务日志标记可执行并发送至所述分布式发布订阅消息系统,所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,重新执行所述事务;

当所述事务不可执行时,所述事务回滚系统将不可执行原因记录在所述事务日志中并发送至所述分布式发布订阅消息系统,所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,所述资源管理系统存储所述事务日志;

当所述事务执行结束时,事务发送系统调用所述事务日志,将所述事务日志发送至事务展示页面进行展示。

在其中一个实施例中,所述事务管理系统将事务发送至资源管理系统,所述事务包括事务指令、事务执行内容,包括:

事务管理系统通过事务输入页面接收用户的事务处理请求,获取用户输入的事务,所述事务包括事务指令、事务执行内容;

所述事务管理系统筛选所述事务中的关键词;

所述事务管理系统调取资源管理系统数据库,搜索所述关键词;

所述事务管理系统依据所述关键词搜索结果匹配所述资源管理系统,并将所述事务发送至所述资源管理系统。

在其中一个实施例中,所述资源管理系统将所述事务日志发送至分布式发布订阅消息系统,所述分布式发布订阅消息系统判断所述事务是否执行成功,当所述事务执行成功时,所述分布式发布订阅消息系统将所述事务执行成功结果反馈至所述资源管理系统,包括:

所述资源管理系统调取分布式应用协调程序,通过所述分布式应用协调程序与所述分布式发布订阅消息系统建立连接;

所述资源管理系统将所述事务日志发送至所述分布式发布订阅消息系统;

所述分布式发布订阅消息系统调取超文本预处理脚本,所述超文本预处理脚本从所述事务日志中获取事务处理返回值,当获取的所述返回值为1时,判断为所述事务执行成功,所述分布式发布订阅消息系统将所述事务执行成功结果反馈至所述资源管理系统。

在其中一个实施例中,所述当所述事务执行失败时,所述分布式发布订阅消息系统将所述事务日志发送至事务回滚系统,所述事务回滚系统判断所述事务是否存在可执行性,当所述事务可执行时,所述事务回滚系统将所述事务日志标记可执行并发送至所述分布式发布订阅消息系统,所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,重新执行所述事务,包括:

当所述超文本预处理脚本获取的所述返回值为0时,判断为所述事务执行失败,所述分布式发布订阅消息系统将所述事务日志发送至事务回滚系统;

所述事务回滚系统调取结构化查询脚本,所述结构化查询脚本获取所述事务日志中的事务执行结果,所述事务回滚系统将所述事务执行结果匹配预设的事务执行结果表,所述事务执行结果表包括可执行结果和不可执行结果,当匹配结果为true时,所述事务存在可执行性,所述事务回滚系统将可执行性标记记录在所述事务日志中并发送至所述分布式发布订阅消息系统;

所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,所述资源管理系统重新执行所述事务。

在其中一个实施例中,所述当所述事务不可执行时,所述事务回滚系统将不可执行原因记录在所述事务日志中并发送至所述分布式发布订阅消息系统,所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,所述资源管理系统存储所述事务日志,包括:

当匹配结果为false时,所述事务不存在可执行性,所述事务回滚系统获取所述事务执行结果表中不可执行原因,将不可执行性标记和不可执行原因记录在所述事务日志中并发送至所述分布式发布订阅消息系统;

所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统;

所述资源管理系统存储所述事务日志并将执行失败结果反馈至所述事务管理系统。

在其中一个实施例中,所述当所述事务执行结束时,事务发送系统调用所述事务日志,将所述事务日志发送至事务展示页面进行展示,包括:

事务发送系统调用所述事务日志,当所述事务日志中包括所述事务执行成功结果或所述不可执行原因时,判断所述事务执行结束;

所述事务发送系统将所述事务日志发送至事务展示页面进行展示。

一种分布式事务一致性解决方法,还包括:

当所述事务管理系统获取多个事务时,所述事务管理系统依据所述多个事务的关键词匹配所述资源管理数据库中的资源管理系统;

所述资源管理系统依据获取所述多个事务的顺序调取事务执行脚本执行所述事务,当所述事务成功执行时,所述分布式发布订阅消息系统将所述事务日志传送至下一个所述资源管理系统并继续执行下一个事务直到所有事务成功执行;

当任一所述事务执行失败时,所述分布式发布订阅消息系统停止发送事务日志至下一个所述资源管理系统,将所述事务日志发送至所述事务执行失败的所述资源管理系统,所述资源管理系统反馈执行失败结果至所述事务管理系统,所述事务管理系统停止执行所述多个事务。

基于相同的技术构思,本发明还提供了一种分布式事务一致性解决装置,所述一种分布式事务一致性解决装置包括:

事务发送模块,设置为事务管理系统将事务发送至资源管理系统,所述事务包括事务指令、事务执行内容;

事务执行模块,设置为所述资源管理系统接收所述事务指令和所述事务执行内容,调取事务执行脚本,所述事务执行脚本依据所述事务指令执行所述事务执行内容,所述资源管理系统将所述事务执行脚本执行得到的执行结果生成事务日志;

成功执行模块,设置为所述资源管理系统将所述事务日志发送至分布式发布订阅消息系统,所述分布式发布订阅消息系统判断所述事务是否执行成功,当所述事务执行成功时,所述分布式发布订阅消息系统将所述事务执行成功结果反馈至所述资源管理系统;

失败执行模块,设置为当所述事务执行失败时,所述分布式发布订阅消息系统将所述事务日志发送至事务回滚系统,所述事务回滚系统判断所述事务是否存在可执行性,当所述事务可执行时,所述事务回滚系统将所述事务日志标记可执行并发送至所述分布式发布订阅消息系统,所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,重新执行所述事务;

不可执行处理模块,设置为当所述事务不可执行时,所述事务回滚系统将不可执行原因记录在所述事务日志中并发送至所述分布式发布订阅消息系统,所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,所述资源管理系统存储所述事务日志;

日志展示模块,设置为当所述事务执行结束时,事务发送系统调用所述事务日志,将所述事务日志发送至事务展示页面进行展示。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述一种分布式事务一致性解决方法的步骤。

一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述一种分布式事务一致性解决方法的步骤。

上述一种分布式事务一致性解决方法及相关设备,通过事务管理系统将事务发送至资源管理系统,再通过事务执行脚本完成事务的执行,采用发布订阅消息系统和事务回滚系统对事务执行结果进行判断和回滚,保障事务的正常执行,最后通过展示事务日志展示事务执行结果。本发明基于分布式系统构建一致性解决方法,保持分布式事务数据的一致性,同时通过判断事务成功与否,采取回滚技术避免事务处理出现无效的情况,通过事务回滚系统判断事务可执行性,有效提升事务反馈与展示的效率,保障分布式系统事务处理的敏捷、高效。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。

图1为本发明一个实施例中一种分布式事务一致性解决方法的流程图;

图2为本发明一个实施例中步骤s1事务发送的流程图;

图3为本发明一个实施例中步骤s3执行成功的流程图;

图4为本发明一种分布式事务一致性解决装置的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

图1为本发明实施例一种分布式事务一致性解决方法的流程图,如图1所示,一种分布式事务一致性解决方法,包括以下步骤:

步骤s1,事务发送:事务管理系统将事务发送至资源管理系统,所述事务包括事务指令、事务执行内容。

图2为本发明一个实施例中步骤s1事务发送的流程图,如图2所示,在一个实施例中,步骤s1可包括如下具体步骤:

步骤s101,获取事务:事务管理系统通过事务输入页面接收用户的事务处理请求,获取用户输入的事务,所述事务包括事务指令、事务执行内容。

步骤s102,筛选关键词:所述事务管理系统筛选所述事务中的关键词。

步骤s103,搜索关键词:所述事务管理系统调取资源管理系统数据库,搜索所述关键词。

步骤s104,匹配发送:所述事务管理系统依据所述关键词搜索结果匹配所述资源管理系统,并将所述事务发送至所述资源管理系统。

通过获取用户的事务处理请求,将用户输入的事务进行匹配,完成事务处理与资源管理系统的匹配,并将匹配后事务发送至对应资源管理系统。

本步骤采用关键词提取算法,获取所述事务中的关键词,具体可选用基于语义的统计语言模型、基于朴素贝叶斯模型的关键词提取算法。

所述基于语义的统计语言模型是一种能够在全面把握所有文本的中心思想的基础上,提取出若干个代表文本语义内容的词汇或短语,相关结果可用于精化阅读、语义查询和快速匹配等;所述基于朴素贝叶斯模型的关键词提取算法是通过训练过程获得朴素贝叶斯模型中的各个参数,然后以之为基础,在测试过程完成关键词提取。

本实施例采用提取关键词将事务对应所述事务管理系统,完成事务与资源管理系统的匹配,避免资源利用的混乱,合理利用资源,同时采用的关键词提取算法相对于传统的提取算法,提取更为准确,而且可灵活地增加表征词语重要性的特征项,具有更好的可扩展性。

步骤s2,事务执行:所述资源管理系统接收所述事务指令和所述事务执行内容,调取事务执行脚本,所述事务执行脚本依据所述事务指令执行所述事务执行内容,所述资源管理系统将所述事务执行脚本执行得到的执行结果生成事务日志。

本步骤主要是通过执行脚本执行事务,将执行结果生成事务日志,记录事务处理的详细情况。

本实施例通过生成事务日志,详细记录事务处理的过程,避免了事务处理出现问题时无法追溯的情况,便于追寻,保障了事务信息的安全。

步骤s3,成功执行:所述资源管理系统将所述事务日志发送至分布式发布订阅消息系统,所述分布式发布订阅消息系统判断所述事务是否执行成功,当所述事务执行成功时,所述分布式发布订阅消息系统将所述事务执行成功结果反馈至所述资源管理系统。

分布式发布订阅消息系统,是一个开源流处理软件,可以处理消费者规模较大的网站中的所有动作流数据,是在现代网络上的许多社会功能的一个关键因素。分布式发布订阅消息系统的目的是通过并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

图3为本发明一个实施例中步骤s3成功执行的流程图,如图3所示,在一个实施例中,步骤s3可包括如下具体步骤:

步骤s301,建立连接:所述资源管理系统调取分布式应用协调程序,通过所述分布式应用协调程序与所述分布式发布订阅消息系统建立连接。

分布式应用协调程序是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

步骤s302,日志发送:所述资源管理系统将所述事务日志发送至所述分布式发布订阅消息系统。

步骤s303,事务成功判别:所述分布式发布订阅消息系统调取超文本预处理脚本,所述超文本预处理脚本从所述事务日志中获取事务处理返回值,当获取的所述返回值为1时,判断为所述事务执行成功,所述分布式发布订阅消息系统将所述事务执行成功结果反馈至所述资源管理系统。

超文本预处理脚本是一种通用开源脚本语言,主要适用于网页开发领域。

本步骤主要是通过返回值判断事务处理成功情况下如何将执行成功结果反馈至资源管理系统进行记录。

本实施例采用分布式发布订阅消息系统,具备实时获取消息并进行处理的功能,可以有效完成事务信息的反馈和处理;采用分布式应用协调程序简单易用,接口和性能高效、功能稳定;采用超文本预处理脚本,执行效率高,同时可以加密和优化,代码运行速度快且安全高效。

步骤s4,失败执行:所述当所述事务执行失败时,所述分布式发布订阅消息系统将所述事务日志发送至事务回滚系统,所述事务回滚系统判断所述事务是否存在可执行性,当所述事务可执行时,所述事务回滚系统将所述事务日志标记可执行并发送至所述分布式发布订阅消息系统,所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,重新执行所述事务。

在一个实施例中,步骤s4可包括如下具体步骤:

步骤s401,执行判断:当所述超文本预处理脚本获取的所述返回值为0时,判断为所述事务执行失败,所述分布式发布订阅消息系统将所述事务日志发送至事务回滚系统。

步骤s402,回滚判断:所述事务回滚系统调取结构化查询脚本,所述结构化查询脚本获取所述事务日志中的事务执行结果,所述事务回滚系统将所述事务执行结果匹配预设的事务执行结果表,所述事务执行结果表包括可执行结果和不可执行结果,当匹配结果为true时,所述事务存在可执行性,所述事务回滚系统将可执行性标记记录在所述事务日志中并发送至所述分布式发布订阅消息系统。

步骤s403,重新执行:所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,所述资源管理系统重新执行所述事务。

本步骤主要采用事务回滚系统保障在执行失败的情况多一步判断事务处理是否存在错误的过程。

本实施例最主要的特点是利用事务回滚系统,避免事务执行异常造成事务无法正常执行的情况发生,保障事务执行内容的准确无误,同时避免了由于异常情况造成事务无法执行的问题影响事务判断的事故发生。

步骤s5,不可执行处理:所述当所述事务不可执行时,所述事务回滚系统将不可执行原因记录在所述事务日志中并发送至所述分布式发布订阅消息系统,所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,所述资源管理系统存储所述事务日志。

在一个实施例中,步骤s5可包括如下具体步骤:

步骤s501,不可执行标记:当匹配结果为false时,所述事务不存在可执行性,所述事务回滚系统获取所述事务执行结果表中不可执行原因,将不可执行性标记和不可执行原因记录在所述事务日志中并发送至所述分布式发布订阅消息系统。

步骤s502,消息传送:所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统。

步骤s503,失败结果反馈:所述资源管理系统存储所述事务日志并将执行失败结果反馈至所述事务管理系统。

本步骤是在执行失败同时事务存在不可执行问题的情况下所做出的处理。

本实施例有效将失败结果进行了反馈和记录,保障了在事务执行失败的情况可追溯失败的原因和执行失败的具体资源管理系统位置,提升了事务排查的效率。

步骤s6,日志展示:所述当所述事务执行结束时,事务发送系统调用所述事务日志,将所述事务日志发送至事务展示页面进行展示。

在一个实施例中,步骤s6可包括如下具体步骤:

步骤s601,判断事务结束:事务发送系统调用所述事务日志,当所述事务日志中包括所述事务执行成功结果或所述不可执行原因时,判断所述事务执行结束。

步骤s602,展示事务日志:所述事务发送系统将所述事务日志发送至事务展示页面进行展示。

本步骤是在事务已经结束的情况下将事务展示,用于参考,便于后续采取相关措施或分析事务处理过程。

本实施例将事务日志有效展示处理,为用户判断事务和分析事务执行过程提供了依据,便于提升、优化后续事务处理的效率。

在一个实施例中,本发明实施例还包括以下步骤:

步骤s701,匹配多个事务:当所述事务管理系统获取多个事务时,所述事务管理系统依据所述多个事务的关键词匹配所述资源管理数据库中的资源管理系统。

步骤s702,继续执行判断:所述资源管理系统依据获取所述多个事务的顺序调取事务执行脚本执行所述事务,当所述事务成功执行时,所述分布式发布订阅消息系统将所述事务日志传送至下一个所述资源管理系统并继续执行下一个事务直到所有事务成功执行。

步骤s703,错误执行停止:当任一所述事务执行失败时,所述分布式发布订阅消息系统停止发送事务日志至下一个所述资源管理系统,将所述事务日志发送至所述事务执行失败的所述资源管理系统,所述资源管理系统反馈执行失败结果至所述事务管理系统,所述事务管理系统停止执行所述多个事务。

本步骤是为出现多个事务的情况下对事务进行的一个合理安排和统筹。

本实施例避免了多事务出现时,事务处理混乱情况的发生,为多事务处理提供了有效依据,同时合理安排多事务处理的过程,为用户提供了高效、便捷的事务处理和统计方式。

本发明实施例解决了分布式事务处理的情况,事务数据一致性无法保证的情况,同时合理安排事务处理的方式,避免了异常情况的发生。

在一个实施例中,提出了一种分布式事务一致性解决装置,如图4所示,其包括:

事务发送模块,设置为事务管理系统将事务发送至资源管理系统,所述事务包括事务指令、事务执行内容;

事务执行模块,设置为所述资源管理系统接收所述事务指令和所述事务执行内容,调取事务执行脚本,所述事务执行脚本依据所述事务指令执行所述事务执行内容,所述资源管理系统将所述事务执行脚本执行得到的执行结果生成事务日志;

成功执行模块,设置为所述资源管理系统将所述事务日志发送至分布式发布订阅消息系统,所述分布式发布订阅消息系统判断所述事务是否执行成功,当所述事务执行成功时,所述分布式发布订阅消息系统将所述事务执行成功结果反馈至所述资源管理系统;

失败执行模块,设置为当所述事务执行失败时,所述分布式发布订阅消息系统将所述事务日志发送至事务回滚系统,所述事务回滚系统判断所述事务是否存在可执行性,当所述事务可执行时,所述事务回滚系统将所述事务日志标记可执行并发送至所述分布式发布订阅消息系统,所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,重新执行所述事务;

不可执行处理模块,设置为当所述事务不可执行时,所述事务回滚系统将不可执行原因记录在所述事务日志中并发送至所述分布式发布订阅消息系统,所述分布式发布订阅消息系统将所述事务日志发送至所述资源管理系统,所述资源管理系统存储所述事务日志;

日志展示模块,设置为当所述事务执行结束时,事务发送系统调用所述事务日志,将所述事务日志发送至事务展示页面进行展示。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行计算机可读指令时实现上述各实施例里一种分布式事务一致性解决方法中的步骤。

在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例里一种分布式事务一致性解决方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(rea/d-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1