CN112181377B - 服务调用的事务管理器协同框架、设计方法及云平台 - Google Patents

服务调用的事务管理器协同框架、设计方法及云平台 Download PDF

Info

Publication number
CN112181377B
CN112181377B CN202011083343.0A CN202011083343A CN112181377B CN 112181377 B CN112181377 B CN 112181377B CN 202011083343 A CN202011083343 A CN 202011083343A CN 112181377 B CN112181377 B CN 112181377B
Authority
CN
China
Prior art keywords
transaction
service
manager
transaction manager
master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011083343.0A
Other languages
English (en)
Other versions
CN112181377A (zh
Inventor
李晓林
刘静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huizhi Lighting Technology Beijing Co ltd
Original Assignee
Huizhi Lighting Technology Beijing Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huizhi Lighting Technology Beijing Co ltd filed Critical Huizhi Lighting Technology Beijing Co ltd
Priority to CN202011083343.0A priority Critical patent/CN112181377B/zh
Publication of CN112181377A publication Critical patent/CN112181377A/zh
Application granted granted Critical
Publication of CN112181377B publication Critical patent/CN112181377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种服务调用的事务管理器协同框架、设计方法及云平台,所述事务管理框架包括:主从事务管理器协同模块、交互协议模块、资源管理器和虚拟表;主从事务管理器协同模块包括:主事务管理器和从事务管理器;主事务管理器在应用程序调用事务语句时启动并生成全局事务键,对关键业务的事务全过程管理和控制,通过交互协议模块提供的服务接口向从事务管理器发送事务操作指令;从事务管理器通过所述交互协议模块提供的服务接口获取主事务管理器生成的所述全局事务键,接收并执行主事务管理器发送的事务操作指令。本发明可以实现一次包含多个服务(微服务)调用的关键业务全过程中,多个事务管理器(TM)之间协同并确保全局一致性。

Description

服务调用的事务管理器协同框架、设计方法及云平台
技术领域
本发明涉及数据处理技术领域,特别是涉及大规模数据服务平台领域,具体为一种服务调用的事务管理器协同框架、设计方法及云平台。
背景技术
分布式事务架构中,一个全局事务管理器(TM)能协同管理多个资源管理器(RM),这能满足一个关键业务对多个资源访问的分布式事务一致性。
而对于那些涉及多方***的智能化业务流程,往往需要调用多个独立的服务或者微服务,一个事务TM由于无法管控第三方服务(微服务)的内部资源调用过程,所以它无法协调这种跨服务的全局事务,从而不能确保整个业务流程的最终一致性。这实质上需要基于多个独立TM之间的事务协同框架来解决这个问题。现在针对微服务调用的事务一致性解决方案,一种是基于可靠消息队列的信息传递,确保微服务交互环节之间接受和发送消息的最终一致性,由于消息机制的延迟明显及单点故障等原因,这种一致性的实时效果较差;另一种方案是,如开源社区的Seata,将所有微服务访问的资源(对应的RM)全部注册到一个集中的事务协调器Transaction Coordinator(TC),这明显破坏了微服务的独立性和透明化。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种服务调用的事务管理器协同框架、设计方法及云平台,用于解决现有技术中一次包含多个服务(微服务)调用的关键业务全过程中多个全局事务管理器(TM)无法协调跨服务的全局事务,从而不能确保整个业务流程的最终一致性的问题。
为实现上述目的及其他相关目的,本发明提供一种服务调用的事务管理器协同框架,应用于包含多个云虚拟主机节点的云平台,所述服务调用的事务管理器协同框架包括:主从事务管理器协同模块、交互协议模块、资源管理器和虚拟表;所述主从事务管理器协同模块包括:主事务管理器和从事务管理器;所述主事务管理器配置于云虚拟主机节点中,在应用程序调用事务语句时启动并生成全局事务键,对关键业务的事务全过程管理和控制,通过所述交互协议模块提供的服务接口向所述从事务管理器发送事务操作指令;所述从事务管理器配置于云虚拟主机节点中,通过所述交互协议模块提供的服务接口获取所述主事务管理器生成的所述全局事务键,接收并执行所述主事务管理器发送的事务操作指令;所述虚拟表运行于云平台的某一云虚拟主机节点中,对大规模物理异构数据库资源进行管理;所述资源管理器配置于云虚拟主机节点中,基于云平台的访问通道和所述虚拟表的服务地址,对所述关键业务的资源进行管理;一个所述主事务管理器协调一个或多个独立的所述资源管理器、一个或多个独立的所述从事务管理器,形成运行时结构体,通过运行时结构体完成一次即时性的全局事务服务。
于本发明一实施例中,所述从事务管理器在服务内部继续访问其他服务,该所述从事务管理器转换为所述主事务管理器的角色功能。
于本发明一实施例中,所述事务操作指令包括准备事务操作指令、提交事务操作指令和恢复事务操作指令。
于本发明一实施例中,所述主事务管理器实时管控所述从事务管理器的从事务管理实例及地址。
于本发明一实施例中,所述全局事务服务完成后,所述运行时结构体被摧毁;运行时即时存储事务管理器的事务管理日志和资源管理器的资源管理日志。
于本发明一实施例中,所述虚拟表动态映射所述关键业务对应的一个或多个物理库表,实现所述关键业务访问一个或多个物理资源;访问大规模物理异构数据库资源的虚拟表接口对所述云平台的所有云虚拟主机节点通用。
于本发明一实施例中,所述云平台对所述大规模物理异构数据库资源进行分区管理,预设类别数据库资源由预设云虚拟主机节点控制和管理。
对应地,本发明提供一种服务调用的事务管理器协同框架设计方法,应用于包含多个云虚拟主机节点的云平台,所述服务调用的事务管理器协同框架的设计方法包括:于云虚拟主机节点中配置主从事务管理器协同模块,所述主从事务管理器协同模块包括:主事务管理器和从事务管理器;所述主事务管理器在应用程序调用事务语句时启动并生成全局事务键,对关键业务的事务全过程管理和控制,通过所述交互协议模块提供的服务接口向所述从事务管理器发送事务操作指令;所述从事务管理器通过所述交互协议模块提供的服务接口获取所述主事务管理器生成的所述全局事务键,接收并执行所述主事务管理器发送的事务操作指令;于云平台的某一云虚拟主机节点中运行虚拟表,通过所述虚拟表对大规模物理异构数据库资源进行管理;于云虚拟主机节点中配置资源管理器,所述资源管理器基于云平台的访问通道和所述虚拟表的服务地址,对所述关键业务的资源进行管理;一个所述主事务管理器协调一个或多个独立的所述资源管理器、一个或多个独立的所述从事务管理器,形成运行时结构体,通过运行时结构体完成一次即时性的全局事务服务。
于本发明一实施例中,所述从事务管理器在服务内部继续访问其他服务,该所述从事务管理器转换为所述主事务管理器的角色功能。
本发明提供一种云平台,应用如上所述的服务调用的事务管理器协同框架。
如上所述,本发明的服务调用的事务管理器协同框架、设计方法及云平台,具有以下有益效果:
1)本发明在现有动态可扩展的云架构基础上,在事务管理层,通过建立多个独立事务管理器(TM)之间的主从协同模型和事务交互协议,实现一次包含多个服务(微服务)调用的关键业务全过程中,多个事务管理器(TM)之间协同并确保全局一致性,为网络环境的服务(微服务)调用,在云平台层提供一套透明的、独立的服务之间的事务协同框架和机制。
2)本发明为跨多方智能协同***的业务事务处理、供应链线上协同金融服务、多分区数据管理事务一致性等需求,提供技术和服务支持。
3)本发明能基于现有云架构、数据处理中间件等拓展,能较好的与现有分布式网络***对接,业务编写和用户体验能实现平滑转移,因此,在带来新型技术和适用功能的同时,建设、运营、推广成本较低。
附图说明
图1显示为本发明的服务调用的事务管理器协同框架于一实施例中的框架示意图;
图2显示为本发明的服务调用的事务管理器协同框架于一实施例中的架构应用示意图;
图3显示为本发明的服务调用的事务管理器协同框架于一实施例中的数据传输架构示意图;
图4显示为本发明的服务调用的事务管理器协同框架于一实施例中的交互协议操作示意图;
图5显示为本发明的服务调用的事务管理器协同框架于一实施例中的数据处理过程示意图。
元件标号说明
100 服务调用的事务管理器协同框架
110 主从事务管理器协同模块
111 主事务管理器
112 从事务管理器
113 从事务管理器
120 资源管理器
130 虚拟表
140 交互协议模块
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
本实施例的目的在于提供一种服务调用的事务管理器协同框架、设计方法及云平台,用于解决现有技术中一次包含多个服务(微服务)调用的关键业务全过程中多个全局事务管理器(TM)无法协调跨服务的全局事务,从而不能确保整个业务流程的最终一致性的问题。
本实施例提供的一种服务调用的事务管理器协同框架、设计方法及云平台是在事务管理层,通过建立多个独立TM之间的主从协同模型和事务交互协议,实现一次包含多个服务(微服务)调用的关键业务全过程中,多个TM事务单元之间协同并确保最终全局一致性,为网络环境的服务(微服务)调用,在云平台层提供一套透明的、独立的事务协同框架和机制。
以下将详细阐述本实施例的服务调用的事务管理器协同框架、设计方法及云平台的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本实施例的一种服务调用的事务管理器协同框架、设计方法及云平台。
如图1和图2所示,本实施例提供一种服务调用的事务管理器协同框架100,应用于包含多个云虚拟主机节点(图1中所示的云虚拟主机节点1、云虚拟主机节点2…云虚拟主机节点N)的云平台,所述服务调用的事务管理器协同框架100包括:主从事务管理器协同模块110、交互协议模块140、资源管理器120和虚拟表130。
于本实施例中,所述云平台对所述大规模物理异构数据库资源进行分区管理,预设类别数据库资源由预设云虚拟主机节点控制和管理。
于本实施例中,大规模异构数据库资源在接入云平台遵循分区控制的管理机制,即特定数据库资源由特定服务节点集(应用上称为服务社区)控制和管理。这解决了(从资源端需求的)局部自主集中控制,与(从应用端需求的)全局协同一体服务的协作需要。针对这类资源的访问,必须由相应的服务节点(集合)完成。服务节点针对特定资源,实施对应的安全控制策略。
所述虚拟表130运行于云平台的某一云虚拟主机节点中,对大规模物理异构数据库资源进行管理。
于本实施例中,所述虚拟表130动态映射所述关键业务对应的一个或多个物理库表,实现所述关键业务访问一个或多个物理资源。
详细而言,云平台通过虚拟化机制实现对物理异构数据库资源的管理,虚拟表130是云平台的一个抽象资源实体,通过动态映射,映射到对应的一个或多个物理库表。所有虚拟表130在云端又按照社区进行局部的集中管理和控制。云端的数据操作,都是针对虚拟表130的接口。
基于虚拟表130的统一接口编写的关键业务的应用逻辑运行在云平台的某个云虚拟主机节点上,该云虚拟主机节点启动一事务管理器(TM)服务实例为该业务服务,而通过云平台的动态映射机制,该业务最终要绑定访问的物理资源可能遍布在全网的其他节点,该事务管理器(TM)实时协调那些节点上的资源管理器120(RM)服务实例。
于本实施例中,访问大规模物理异构数据库资源的虚拟表130接口对所述云平台的所有云虚拟主机节点通用。
也就是说,于本实施例中,服务节点和数据库资源是基于相互独立策略的可伸缩扩展机制,以及动态分配调度机制,实现对资源的局部管控,服务节点和资源之间不是硬耦合的绑定机制,原则上资源接口对所有服务节点是通用的。
于本实施例中,所述主从事务管理器协同模块110包括:主事务管理器111(Transaction Manager Master,TMM)和至少一个从事务管理器(Transaction ManagerSlave,TMS)(例如包括从事务管理器112和从事务管理器113,本实施例为便于说明,以下以从事务管理器112为例代替说明本实施例中的所有从事务管理器)。
具体地,于本实施例中,所述主事务管理器111配置于云虚拟主机节点中,在应用程序调用事务语句时启动并生成全局事务键,对关键业务的事务全过程管理和控制,通过所述交互协议模块140提供的服务接口向所述从事务管理器112发送事务操作指令。
于本实施例中应用程序的应用服务部署在云VM节点上,嵌入事务语句支持全局事务语义的伺服程序,内部基于虚拟表130接口对关键资源访问,对外提供服务调用接口,接口可以接收全局事务Key参数。
于本实施例中,如图3所示,所述主事务管理器111由关键业务程序调用事务开启语句,在应用程序所在VM节点(云虚拟主机节点)上生成的运行时TM实例,其承担全局事务管理的发起者角色,由其生成全局事务唯一的Key标识(事务键),实现一次关键业务(包括一个或多个服务调用)的事务全过程主动管理和控制。全局事务需要一个或多个独立的RM(Resource Manager)、一个或多个独立TMS(从事务管理器112)参与协同,每个事务TM运行在独立的云虚拟主机上。
于本实施例中,所述主事务管理器111实时管控所述从事务管理器112的从事务管理实例及地址。
具体地,于本实施例中,所述从事务管理器112配置于云虚拟主机节点中,通过所述交互协议模块140提供的服务接口获取所述主事务管理器111生成的所述全局事务键,接收并执行所述主事务管理器111发送的事务操作指令。
如图3所示,所述从事务管理器112为全局事务参与者,其是由某个TMM(主事务管理器111)控制的全局事务Key的一个分支事务管理器,其通过服务接口获得Key关键字,在运行服务所在的VM节点上生成的管理本服务内部事务TM实例,接收并执行TMM(主事务管理器111)发来的事务操作指令。
于本实施例中,所述事务操作指令包括准备事务操作指令、提交事务操作指令和恢复事务操作指令。
特别地,于本实施例中,所述从事务管理器112在服务内部继续访问其他服务,该所述从事务管理器112转换为所述主事务管理器111的角色功能。
从逻辑功能的角度,所述主事务管理器111和所述从事务管理器112并没有区别,主从是个相对概念,TMM(主TM)负责生成新的全局事务Key,而TMS(从TM)是接受Key并负责该整体事务的局部管理。TMS也可以调用其他服务,从而管理其他TMS,它此时的相对身份就是TMM。
每个云虚拟主机节点都可以提供对等的、独立的、松耦合的TMM(主TM)和TMS(从TM)服务,都部署对应的协同交互接口,实现对所有接入云端服务和数据资源的全局事务管理。
需要说明的是,本实施例中,事务管理器(TM)(包括可作为主TM的TMM和可作为从TM的TMS)相当于云虚拟主机节点的一个内置核心组件,每个云虚拟主机节点在处理标签为事务的请求时,会启动事务管理器(TM),实现全程事务监控和管理。于本实施例中,事务管理器(TM)并不是一个代理应用服务(如Tuxedo架构中的Application Service),不代理云端进程/线程完成对关键资源的事务访问通路,而是作为一个专门依附并服务于该通路的运行时结构体及其持久存储日志,实现事务管控的。这样,只有标签为事务服务的云端访问请求,才会启动相应的事务管理器(TM)及服务,而针对非事务请求请求,并不需要TM和RM服务。
本实施例中,通过事务管理器(TM)协同引擎实现对主事务管理器111(TMM)和从事务管理器112(TMS)的控制管理,具体包括:
1)创建能跨云平台可唯一识别的全局事务key。相对来说,原来每个云虚拟主机上TM事务key可以是本云平台唯一识别即可(只有TM和RM之间的协同)。
2)主事务管理器111(TMM)和从事务管理器112(TMS)的功能约束设置。根据事务的TM角色,协同引擎设置TM实例的功能约束,比如TMS原则上在服务调用结束事务操作命令时,不能主动启动该事务准备和直接提交操作。
3)主事务管理器111(TMM)和从事务管理器112(TMS)的关联地址管理。TMM实时管控的服务节点上的TMS实例及地址。
4)TMM(主TM)对TMS(从TM)的事务操作命令的协同调用,启动调用交互服务实现协同操作。
5)主事务管理器111(TMM)和从事务管理器112(TMS)协同的超时监控、协同的异常等状态管理。
于本实施例中,所述资源管理器120(RM,Resource Manager)配置于云虚拟主机节点中,基于云平台的访问通道和所述虚拟表130的服务地址,对所述关键业务的资源进行管理。
针对每次关键业务事务,RM是服务于TM(包括TMM,TMS),管理特定资源的事务资源管理器120。显然,一个TM可以协调多个RM。每个RM运行在独立的云虚拟主机上,也即运行在该资源当前的控制服务节点上。
资源管理器120(RM,Resource Manager)也是云虚拟主机节点的一个内置核心组件。对该云虚拟主机节点管控的某个资源进行事务操作访问时,该云虚拟主机节点启动一个针对该资源的RM实例。跟TM一样,RM不是代理资源访问应用服务的一部分,而是代表运行时结构体及其持久存储日志。
于本实施例中,一个所述主事务管理器111协调一个或多个独立的所述资源管理器120、一个或多个独立的所述从事务管理器112,形成运行时结构体,通过运行时结构体完成一次即时性的全局事务服务。所述全局事务服务完成后,所述运行时结构体被摧毁;运行时即时存储事务管理器的事务管理日志和资源管理器120的资源管理日志。
于本实施例中,所述交互协议模块140部署在VM节点上,专门实现主从TM之间协同访问的服务接口,提供准备(prepare),提交(commit/rollback)和恢复(recover)事务命令操作。
于本实施例中,如图4所示,所述交互协议模块140提供的主从TM交互服务具体包括三类TM协同接口(服务接口):
1)准备接口:主TM通过该接口向从TM发送准备阶段执行命令。
2)提交接口:主TM通过该接口向从TM发送提交阶段执行命令。
3)恢复接口:主TM通过该接口向从TM发送恢复事务执行命令。
于本实施例中,所述主从事务管理器协同模块110在全局事务管理器(TM)基础上,定义TM协同模型,具体包括协同语义、相对角色和功能范围、交互协议。
1)应用程序调用事务语句时,启动TMM(主TM)生成全局事务key,并通过(微)服务调用传递给要访问的服务。
2)服务端生成该Key的TMS(从TM),负责该服务的自身事务管理,以及接受和完成TMM(主TM)的事务控制请求;
3)TMM在应用程序控制下,通过交互协议,负责向TMS发起事务协同控制命令,TMS完成事务命令后给TMM返回结果。即:服务运行所在的TMS不论服务逻辑是否显示调用事务操作指令,原则上都不能主动执行事务的准备、提交、恢复命令。
基于本实施例的服务调用的事务管理器协同框架100,服务开发时通过嵌入事务命令语句,服务内部基于虚拟表130统一接口实现对关键资源访问,即可实现TM和多个独立RM之间的松耦合协同,这确保了服务内部的事务一致性;同时借助主从TM协同模型和事务交互协议,实现多个独立运作的TM之间的协同,从而实现多个(微)服务之间调用的全局事务一致性,为跨多方智能协同***的业务事务处理、供应链线上协同金融服务、多分区数据管理事务一致性等需求,提供技术和服务支持,而且能基于现有云架构、数据处理中间件等拓展,能较好的与现有分布式网络***对接,业务编写和用户体验能实现平滑转移,因此,在带来新型技术和适用功能的同时,建设、运营、推广成本较低。
本实施例的服务调用的事务管理器协同框架100是基于X/OPEN组织的XA事务标准,适合大规模资源管理的云平台计算环境的分布式全局事务管理框架。关键事务业务所访问的物理资源,需要支持XA事务标准。
以XA事务为例,如图5所示,具体全局事务框架的工作流程如下:
(1)应用程序调用startTransaction()接口访问TM服务,依据本线程/进程号,创建并开启全局事务key的Transaction实例,其代表TMM(主TM)实例,实现全局事务管理;
(2)应用程序访问一个(微)服务时,TMM会将该服务地址加入到全局事务Key的Transaction的服务地址列表中,并将Key参数传给服务端;该服务地址能唯一代表对应的TMS服务实例。
(3)服务端会基于key创建并开启一个本服务的Transaction实例,其代表TMS(从TM)实例,实现本服务内部事务对RM的管控,同时接受和执行TMM的协同命令。如果本(微)服务内部继续访问其他(微)服务,那么本(微)服务的TMS相对角色从从角色变成应用程序的TMM主角色,继续递归的执行(2)-(3)步。显然应该避免闭合循坏调用。
(4)可选的,应用程序还可以直接访问多个虚拟表130资源,生成TMM直接管控的RM列表。
(5)重复(2)-(4)步,完成应用程序调用访问多个(微)服务及虚拟表130资源的过程。如果有任何服务访问不成功,TMM(主TM)会直接启动事务第二阶段(即第9步),回滚已执行操作。
(6)服务访问(包括其他虚拟资源的直接访问)都成功完成后,应用程序访问endTransaction()接口,表示完成数据操作,启动全局事务第一阶段,prepare阶段。
(7)prepare阶段,依据本主Transaction对象实例TMM中的访问的服务地址(还包括其他RM资源地址),向该地址所代表的TMS(从TM)服务(从Transaction实例),依次发送prepare操作。
(8)TMS接受到prepare请求时,执行其内部的prepare操作。即依次对本事务key管理的RM列表,执行资源的prepare操作。如果都成功,给TMS返回成功标志,如果某个资源失败,直接给TMS返回失败标志。TMS再将最终结果立即返回给TMM。
(9)TMM端汇总所有服务TMS和直接管控的RM的prepare操作结果,包括事务是否超时,异常等信息,决定是提交Commit还是回滚Rollback。启动事务第二阶段。
(10)第二阶段与第一阶段类似,依次向TMM(主Transaction实例)中访问的TMS服务,发送提交请求。
(11)TMS端接到提交请求后,执行其内部的commit操作。即依次对本事务key管理的RM列表,执行资源的提交请求。如果某个资源提交失败,只能等待人工/***自动恢复了,算法会继续提交下一个资源。
(12)TMM全局事务,TMS局部事务若最终成功完成,相关的运行时结构体摧毁。若未成功,会保留相关运行时结构,以备事务恢复使用。
(13)每执行一步都记录事务日志,包括开始执行标志,以及执行结果。
本实施例还包括:XA事务恢复,XA事务恢复包括:
(1)只有主TM能主动发起事务恢复操作。
(2)通过全局云服务节点事务监控,可以实时查看有未成功完成的事务服务节点,针对未完成的事务,需要尽快***自动,或由人工参与,启动节点上关键业务的事务恢复,避免***将日志清除。
(3)事务恢复时,由于云主机节点可能已经宕机重启,可能需要预先加载对应的事务日志到内存,生成对应运行时的TMM、TMS和RM实例对象。
(4)恢复时首先需要确定事务执行第二阶段是提交还是回滚操作,如果事务的数据操作阶段或者第一阶段都未完成,直接回滚事务。
(5)恢复时与第二阶段提交类似,依次向TMM(主Transaction)中的那些未完成第二阶段操作的TMS(从TM),发送提交/回滚的恢复请求。
(6)TMS端接到提交的恢复请求后,执行其自身内部的恢复操作。即依次检查其管理的RM列表,轮询对那些未完成第二阶段提交的RM资源做提交/回滚的恢复请求。
(7)日志文件会追加记录事务恢复的日志信息。
由上可见,所述本实施例的服务调用的事务管理器协同框架100在服务开发时通过嵌入事务命令语句,服务内部基于虚拟表130统一接口实现对关键资源访问,即可实现TM和多个独立RM之间的松耦合协同,这确保了服务内部的事务一致性;同时借助主从TM协同模型和事务交互协议,实现多个独立运作的TM事务单元之间的协同,从而实现多个(微)服务之间调用的全局事务一致性。
本实施例还提供一种服务调用的事务管理器协同框架100设计方法,应用于包含多个云虚拟主机节点的云平台,所述服务调用的事务管理器协同框架100的设计方法包括:
1)于云虚拟主机节点中配置主从事务管理器协同模块110,所述主从事务管理器协同模块110包括:主事务管理器111和从事务管理器112;所述主事务管理器111在应用程序调用事务语句时启动并生成全局事务键,对关键业务的事务全过程管理和控制,通过所述交互协议模块140提供的服务接口向所述从事务管理器112发送事务操作指令;所述从事务管理器112通过所述交互协议模块140提供的服务接口获取所述主事务管理器111生成的所述全局事务键,接收并执行所述主事务管理器111发送的事务操作指令。
其中,所述从事务管理器112在服务内部继续访问其他服务,该所述从事务管理器112转换为所述主事务管理器111的角色功能。
2)于云平台的某一云虚拟主机节点中运行虚拟表130,通过所述虚拟表130对大规模物理异构数据库资源进行管理;
3)于云虚拟主机节点中配置资源管理器120,所述资源管理器120基于云平台的访问通道和所述虚拟表130的服务地址,对所述关键业务的资源进行管理;
4)一个所述主事务管理器111协调一个或多个独立的所述资源管理器120、一个或多个独立的所述从事务管理器112,形成运行时结构体,通过运行时结构体完成一次即时性的全局事务服务。
本实施例中,所述服务调用的事务管理器协同框架设计方法的具体实现的技术特征与前述服务调用的事务管理器协同框架100的具体实现的技术特征基本相同,两者间可以通用的技术内容不作重复赘述。
本实施例还提供一种云平台,应用如上所述的服务调用的事务管理器协同框架100。上述已经对服务调用的事务管理器协同框架100进行了详细说明,在此不再赘述。
综上所述,本发明在现有动态可扩展的云架构基础上,在事务管理层,通过建立多个独立事务管理器(TM)之间的主从协同模型和事务交互协议,实现一次包含多个服务(微服务)调用的关键业务全过程中,多个事务管理器(TM)之间协同并确保全局一致性,为网络环境的服务(微服务)调用,在云平台层提供一套透明的、独立的服务之间的事务协同框架和机制;本发明为跨多方智能协同***的业务事务处理、供应链线上协同金融服务、多分区数据管理事务一致性等需求,提供技术和服务支持;本发明能基于现有云架构、数据处理中间件等拓展,能较好的与现有分布式网络***对接,业务编写和用户体验能实现平滑转移,因此,在带来新型技术和适用功能的同时,建设、运营、推广成本较低。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (10)

1.一种服务调用的事务管理器协同框架,应用于包含多个云虚拟主机节点的云平台,其特征在于:所述服务调用的事务管理器协同框架包括:主从事务管理器协同模块、交互协议模块、资源管理器和虚拟表;
所述主从事务管理器协同模块包括:主事务管理器和从事务管理器;
所述主事务管理器配置于云虚拟主机节点中,在应用程序调用事务语句时启动并生成全局事务键,对关键业务的事务全过程管理和控制,通过所述交互协议模块提供的服务接口向所述从事务管理器发送事务操作指令;
所述从事务管理器配置于云虚拟主机节点中,通过所述交互协议模块提供的服务接口获取所述主事务管理器生成的所述全局事务键,接收并执行所述主事务管理器发送的事务操作指令;
所述虚拟表运行于云平台的某一云虚拟主机节点中,对大规模物理异构数据库资源进行管理;
所述资源管理器配置于云虚拟主机节点中,基于云平台的访问通道和所述虚拟表的服务地址,对所述关键业务的资源进行管理;
一个所述主事务管理器协调一个或多个独立的所述资源管理器、一个或多个独立的所述从事务管理器,形成运行时结构体,通过运行时结构体完成一次即时性的全局事务服务。
2.根据权利要求1所述的服务调用的事务管理器协同框架,其特征在于:所述从事务管理器在服务内部继续访问其他服务,该所述从事务管理器转换为所述主事务管理器的角色功能。
3.根据权利要求1所述的服务调用的事务管理器协同框架,其特征在于:所述事务操作指令包括准备事务操作指令、提交事务操作指令和恢复事务操作指令。
4.根据权利要求1所述的服务调用的事务管理器协同框架,其特征在于:所述主事务管理器实时管控所述从事务管理器的从事务管理实例及地址。
5.根据权利要求1所述的服务调用的事务管理器协同框架,其特征在于:所述全局事务服务完成后,所述运行时结构体被摧毁;运行时即时存储事务管理器的事务管理日志和资源管理器的资源管理日志。
6.根据权利要求1所述的服务调用的事务管理器协同框架,其特征在于:所述虚拟表动态映射所述关键业务对应的一个或多个物理库表,实现所述关键业务访问一个或多个物理资源;访问大规模物理异构数据库资源的虚拟表接口对所述云平台的所有云虚拟主机节点通用。
7.根据权利要求1所述的服务调用的事务管理器协同框架,其特征在于:所述云平台对所述大规模物理异构数据库资源进行分区管理,预设类别数据库资源由预设云虚拟主机节点控制和管理。
8.一种服务调用的事务管理器协同框架设计方法,应用于包含多个云虚拟主机节点的云平台,其特征在于:所述服务调用的事务管理器协同框架的设计方法包括:
于云虚拟主机节点中配置主从事务管理器协同模块,所述主从事务管理器协同模块包括:主事务管理器和从事务管理器;
所述主事务管理器在应用程序调用事务语句时启动并生成全局事务键,对关键业务的事务全过程管理和控制,通过交互协议模块提供的服务接口向所述从事务管理器发送事务操作指令;
所述从事务管理器通过所述交互协议模块提供的服务接口获取所述主事务管理器生成的所述全局事务键,接收并执行所述主事务管理器发送的事务操作指令;
于云平台的某一云虚拟主机节点中运行虚拟表,通过所述虚拟表对大规模物理异构数据库资源进行管理;
于云虚拟主机节点中配置资源管理器,所述资源管理器基于云平台的访问通道和所述虚拟表的服务地址,对所述关键业务的资源进行管理;
一个所述主事务管理器协调一个或多个独立的所述资源管理器、一个或多个独立的所述从事务管理器,形成运行时结构体,通过运行时结构体完成一次即时性的全局事务服务。
9.根据权利要求8所述的服务调用的事务管理器协同框架的设计方法,其特征在于:所述从事务管理器在服务内部继续访问其他服务,该所述从事务管理器转换为所述主事务管理器的角色功能。
10.一种云平台,其特征在于,应用如权利要求1至权利要求7任一权利要求所述的服务调用的事务管理器协同框架。
CN202011083343.0A 2020-10-12 2020-10-12 服务调用的事务管理器协同框架、设计方法及云平台 Active CN112181377B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011083343.0A CN112181377B (zh) 2020-10-12 2020-10-12 服务调用的事务管理器协同框架、设计方法及云平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011083343.0A CN112181377B (zh) 2020-10-12 2020-10-12 服务调用的事务管理器协同框架、设计方法及云平台

Publications (2)

Publication Number Publication Date
CN112181377A CN112181377A (zh) 2021-01-05
CN112181377B true CN112181377B (zh) 2023-10-17

Family

ID=73947563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011083343.0A Active CN112181377B (zh) 2020-10-12 2020-10-12 服务调用的事务管理器协同框架、设计方法及云平台

Country Status (1)

Country Link
CN (1) CN112181377B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408201A (zh) * 2017-08-18 2019-03-01 ***股份有限公司 基于分布式数据库的事务管理方法
CN109783204A (zh) * 2018-12-28 2019-05-21 咪咕文化科技有限公司 一种分布式事务处理方法、装置及存储介质
CN110532068A (zh) * 2019-07-18 2019-12-03 政采云有限公司 一种分布式事务的管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408201A (zh) * 2017-08-18 2019-03-01 ***股份有限公司 基于分布式数据库的事务管理方法
CN109783204A (zh) * 2018-12-28 2019-05-21 咪咕文化科技有限公司 一种分布式事务处理方法、装置及存储介质
CN110532068A (zh) * 2019-07-18 2019-12-03 政采云有限公司 一种分布式事务的管理方法

Also Published As

Publication number Publication date
CN112181377A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
US6101527A (en) System for managing and processing distributed object transactions and process implemented by said system
CN107209666B (zh) 计算机***
US6832238B1 (en) Local transaction management
US6233623B1 (en) Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state
US7401131B2 (en) Method and system for implementing improved containers in a global ecosystem of interrelated services
CN107426034A (zh) 一种基于云平台的大规模容器调度***及方法
US5768587A (en) Operating a transaction manager with a non-compliant resource manager
US20020165727A1 (en) Method and system for managing partitioned data resources
US20090276431A1 (en) Java virtual machine having integrated transaction management system
JPH06332870A (ja) オブジェクト指向コンピュータ環境における協調処理のためのオブジェクト・マネージャをリンクする方法及び装置
US20010042139A1 (en) Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state
CN102103518A (zh) 一种在虚拟化环境中管理资源的***及其实现方法
EP0707265A2 (en) A system and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators
US7506334B2 (en) Common, multi-version interface that allows a distributed sybsystem to communicate with multiple versions of the distributed subsystem
JP2002512400A (ja) 第1のトランザクション処理環境におけるコンポーネントを能動化して別の環境におけるリソースにアクセスするための方法および装置
JPH09269931A (ja) 協調作業環境構築システム、その方法及び媒体
CN113672352B (zh) 一种基于容器部署联邦学习任务的方法及装置
CN109814978A (zh) 基于多OpenStack平台的跨集群迁移方法及***
CN114756357B (zh) 一种基于jvm的非阻塞分布式计划任务调度方法
CN112104504B (zh) 一种大规模资源访问的事务管理框架、设计方法及云平台
JPH10149286A (ja) 効率的な共通オブジェクトリクエストブローカアーキテクチャトランザクションを実行するための方法および装置
CN112181377B (zh) 服务调用的事务管理器协同框架、设计方法及云平台
Kusek et al. Mobile agent based software operation and maintenance
Matusek et al. Adaptation consistency of distributed role-oriented applications based on the actor model of computation
CN102346681B (zh) 一种通用模拟器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant