CN116303517A - 一种分布式事务调度管理系统及方法 - Google Patents
一种分布式事务调度管理系统及方法 Download PDFInfo
- Publication number
- CN116303517A CN116303517A CN202310530026.6A CN202310530026A CN116303517A CN 116303517 A CN116303517 A CN 116303517A CN 202310530026 A CN202310530026 A CN 202310530026A CN 116303517 A CN116303517 A CN 116303517A
- Authority
- CN
- China
- Prior art keywords
- transaction
- interface
- data
- module
- configuration
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/323—Visualisation of programs or trace data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/87—Monitoring of transactions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式事务调度管理系统及方法,属于分布式事务调度处理技术领域。本发明包括系统接入模块、sso系统模块、分布式事务管理模块、prism监控模块、seate服务模块和数据库;所述系统接入模块的输出端与所述分布式事务管理模块的输入端相连接;所述sso系统模块的输出端与所述分布式事务管理模块的输入端相连接;所述分布式事务管理模块的输出端与所述prism监控模块、所述seate服务模块以及数据库的输入端相连接。本发明基于saga模式的事务技术,能够统一维护各个分布式系统事务,节约技术成本。
Description
技术领域
本发明涉及分布式事务调度处理技术领域,具体为一种分布式事务调度管理系统及方法。
背景技术
随着行内业务的发展,分布式项目的日益繁多,对于每个项目分布式事务的解决方案而言,主要有以下几点问题:各系统需要专业的技术人员负责花时间分布式事务的方案处理,造成技术资源浪费。各个系统分布式方案不统一,无法统一维护。个别旧系统改造困难。无法直观监控事务运行情况,运行异常预警问题。预警数据繁杂,数据库不断回滚导致系统不堪重负,出现宕机风险。
发明内容
本发明的目的在于提供一种分布式事务调度管理系统及方法,以解决上述背景技术中提出的问题。
为了解决上述技术问题,本发明提供如下技术方案:一种分布式事务调度管理方法,该方法包括以下步骤:
S1、利用后台管理系统通过sso模块登录分布式事务管理模块,完成对分布式事务管理模块中业务的事务配置、事务节点脚本配置;
S2、系统接入方通过client方式接入,调用分布式事务管理模块开启事务;
S3、分布式事务管理模块进行事务配置、节点配置和监控,获取运行节点数据,异步地通过回调事件,将处理结果回调至系统业务方接口;
S4、prism监控模块监听和预警接口调用状态、信息记录数据库,构建预警处理器分析模型,基于分析模型结果调用预警平台发送预警;seata服务模块获取预警处理器分析模型的输出结果,在预警事件下,形成回滚数据,对回滚数据量建立预测分析,分别计算出K个时间周期的预测回滚数据值;将未来K个时间周期的数据总量送入回滚前置;若存在K个时间周期内预测回滚数据超出回滚数据阈值,输出系统提示至管理端口,提醒管理员对事务进行人工分析,其中,K代表取值数量,为常数。
根据上述技术方案,在步骤S3中,事务配置包括配置状态机数据,各系统接入方在系统中按照saga模式状态机的要求配置好数据;所述配置状态机数据包括直接导入状态机json、采用图形化界面,自定义拖拽不同的状态属性从而生成不同的状态机json以及利用操作后台,通过添加一系列状态属性从而形成状态机json;节点配置包括配置状态机中的节点接口信息,包括一阶段正向接口和二阶段补偿接口,系统业务方在系统中定义好一阶段正向接口和二阶段补偿接口,系统配置节点信息,一个节点信息包括一阶段正向接口和二阶段补偿接口,通过自定义注解标识出来;所述节点配置方式包括:groovy脚本配置、Springbean 配置;事务监控包括查看事务执行信息,查看事务执行的轨迹状态。
根据上述技术方案,在步骤S4中,所述预警处理器分析模型包括:通知补偿状态处理器、警告补偿状态处理器以及警告正向状态处理器;
所述接口调用状态包括SU(即成功)、RU(即正在运行)、FA(即失败)、UN(即未知状态)以及SK(即跳过);
所述预警包括:
在通知补偿状态处理器下,当接口调用状态为UN时,通过预警平台webhook接口发送预警信息;
在警告补偿状态处理器下,当接口调用状态为UN,将接口运行数据改为SU,设置为手动补偿并记录预警;
在警告正向状态处理器下,当接口调用状态为UN,将接口运行数据改为SU,设置为手动补偿并记录预警。
根据上述技术方案,在步骤S4中,还包括:
在seata服务模块中,获取预警处理器分析模型的输出结果,在预警事件下,形成回滚数据,对回滚数据量建立预测分析,输出后续的预测回滚数据;
所述预测分析包括;
系统预设固定的时间周期,采集每一个时间周期下的回滚数据值;
以历史N组时间周期的回滚数据值数据构建原始数据结构列,记为F0;其中F0={M0(1)、M0(2)、……、M0(N)};其中,M0(1)、M0(2)、……、M0(N)分别代表历史N组时间周期的回滚数据值;
对F0作灰色累加生成处理,生成F1={M1(1)、M1(2)、……、M1(N)};其中,M1(1)、M1(2)、……、M1(N)分别代表历史N组时间周期的回滚数据值经灰色累加生成处理后的结果,任一数据的灰色累加方式为:M1(i)=∑M0(j),其中i代表任一数据的序号,i=1,2,……,N;j代表求和下限,求和上限为i;即M1(2)=M0(1)+M0(2);
对F1进行处理,以紧邻均值的方式计算,生成F2={M2(1)、M2(2)、……、M2(N-1)};其中,M2(1)、M2(2)、……、M2(N-1)分别代表紧邻均值的方式计算处理后的结果,所述紧邻均值包括:M2(i)=0.5M1(i)+0.5M1(i-1);
利用F1的白化微分方程输出发展系数r和灰作用量s:s=dM1(i)/dt+rM1(i);
基于F0、F1、F2,利用最小二乘法求解可得:M0(N+1)=(1-er)(M0(1)-s/r)e-rN
其中,M0(N+1)代表在当前数据趋势下,下一个时间周期下的回滚数据值,设置取值数量K,分别计算出K个时间周期的预测回滚数据值;将未来K个时间周期的数据总量送入回滚前置;
所述回滚前置有回滚数据阈值分析,若存在时间周期内预测回滚数据超出回滚数据阈值,输出系统提示至管理端口,提醒管理员对事务进行人工分析。
MySQL的事务回滚机制主要在于MySQL的事务原子性,所谓原子性就是指一个事务是一个不可分割的工作单位,事务中存在的操作只有两种选择,或者全做,或者全不做;如果事务中的一个sql语句执行失败,则已执行的语句必须回滚,数据库会退回到事务前的状态。其中MySQL的日志有很多种,如二进制日志、错误日志、查询日志、慢查询日志等,其中InnDB引擎还提供了两种事务日志:redo log(即重做日志)和undo log(即回滚日志)。其中redo log用于保证事务持久性;undo log则是事务原子性和隔离性实现的基础。回滚过程中,基本靠undo log来实现,当事务对数据库进行修改时,InnDB会生成对应的undo log;如果事务失败或者调用了rollback,导致事务回滚,便可以利用undo log中的信息将数据回滚到修改之前。undo log属于逻辑日志,它记录的是sql执行相关的信息。当发生回滚时,InnoDB会根据undo log的内容做与之前相反的工作:对于每个insert,回滚时会执行delete;对于每个delete,回滚时会执行insert;对于每个update,回滚时会执行一个相反的update,把数据改回去。若即将出现大量的回滚事务,说明事务中的语句执行出现了严重问题,这种情况一般是由于事务本身或者系统中的设置产生的,需要进行人工运维,本申请以预测的方式,通过数据趋势的变化做将来分析,能有效避免大量回滚事务堵塞拥挤,导致系统瘫痪。
一种分布式事务调度管理系统,该系统包括:系统接入模块、sso系统模块、分布式事务管理模块、prism监控模块、seate服务模块和数据库;
所述系统接入模块用于接入distribute client,触发事务;所述sso系统模块用于实现登录鉴权,系统内所有的角色和权限交付给sso系统完成,通过sso系统完成单点登录,统一行内登录标准;所述分布式事务管理模块用于进行事务配置、节点配置和事务监控;所述prism监控模块用于接入skywalking,能够监控所执行的事务,发出事务预警信号;所述seate服务模块用于协调分布式事务,包括创建主事务记录、分支事务记录,并根据分布式事务的状态,调用参与者提交或回滚方法;所述数据库用于记录或调用数据;
所述系统接入模块的输出端与所述分布式事务管理模块的输入端相连接;所述sso系统模块的输出端与所述分布式事务管理模块的输入端相连接;所述分布式事务管理模块的输出端与所述prism监控模块、所述seate服务模块以及数据库的输入端相连接。
根据上述技术方案,所述sso系统模块包括鉴权单元和登录单元;
所述鉴权单元用于获取系统内所有的角色和权限,对登录方进行身份鉴别;所述登录单元用于通过完成单点登录,统一行内登录标准;
所述鉴权单元的输出端与所述登录单元的输入端相连接。
根据上述技术方案,所述分布式事务管理模块包括事务配置单元、节点配置单元和事务监控单元;
所述事务配置单元用于配置状态机数据,各系统接入方在系统中按照saga模式状态机的要求配置好数据,以这样的方式可以保证无需在业务系统中处理,从而能够方便的查看与操作,如删除、编辑启用和禁用前事务信息,解决传统的分布式长事务问题,节约项目时间;所述配置状态机数据包括直接导入状态机json、采用图形化界面,自定义拖拽不同的状态属性从而生成不同的状态机json以及利用操作后台,通过添加一系列状态属性从而形成状态机json;
所述节点配置单元用于配置状态机中的节点接口信息,包括一阶段正向接口和二阶段补偿接口,系统业务方在系统中定义好一阶段正向接口和二阶段补偿接口,系统配置节点信息,一个节点信息包括一阶段正向接口和二阶段补偿接口,通过自定义注解标识出来;以@Positive代表一阶段正向接口,以@Compensate代表二阶段补偿接口,配置成功之后包括“测试节点”、“禁用/启用”以及“编辑功能”;所述节点配置方式包括:groovy脚本配置、Springbean 配置;所述groovy脚本配置通过groovyServiceInvoker反射调用,脚本中配置应用事务的一阶段正向服务和二阶段补偿服务,系统接入方在发起事务调用时,会解析groovy脚本信息,通过反射的方式去调用接口,而脚本中的逻辑是利用restTemplate结合loadbalanced使用,通过负载均衡的方式调用业务方提供的调用一阶段正向接口服务或二阶段补偿接口;所述Springbean 配置通过SpringBeanServiceInvoker来反射调用方法;
所述事务监控单元用于查看事务执行信息,查看事务执行的轨迹状态。
根据上述技术方案,所述prism监控模块包括监听单元和预警单元;
所述监听单元用于监听接口调用状态、信息记录数据库,构建预警处理器分析模型;所述预警单元基于分析模型结果调用预警平台发送预警信号;
所述监听单元的输出端与所述预警单元的输入端相连接。
根据上述技术方案,所述seate服务模块包括事务协调单元和回滚分析单元;
所述事务协调单元用于创建主事务记录、分支事务记录,分析分布式事务的状态,调用参与者提交事务或回滚数据;所述回滚分析单元用于构建预测分析,实现未来式回滚数据总量分析,并设置相关阈值分析,建立人工提醒;
所述事务协调单元的输出端与所述回滚分析单元的输入端相连接。
与现有技术相比,本发明所达到的有益效果是:本发明基于saga模式的事务技术,统一维护各个分布式系统事务,各系统聚焦于事务正向接口和反向接口的编写和提供整体的事务流程,而无需关注事务底层的配置,统一的事务管理配置及功能由本系统维护,节约技术成本。系统接入方能够快速应用分布式事务技术,解决分布式长事务问题。节约项目时间。对回滚数据趋势进行预测分析,解决MySQL日志堆积冗杂问题,系统运行更加顺畅。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明一种分布式事务调度管理系统的架构示意图;
图2是本发明一种分布式事务调度管理系统的状态机json的参数示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,在本实施例一中:提供一种分布式事务调度管理方法,该方法包括以下步骤:
利用后台管理系统通过sso模块登录分布式事务管理模块,完成对分布式事务管理模块中业务的事务配置、事务节点脚本配置;
系统接入方通过client方式接入,调用分布式事务管理模块开启事务;
首先自定义状态机处理器,其中状态机配置信息包括数据库、线程池以及通过反射调用节点数据实际实现的方法 groovyServiceInvoker及springbeaninvoker,利用groovyServiceInvoker解析脚本反射调用执行流程;
在上述步骤中,业务系统已经在本系统中提前配置事务状态机数据和运行节点数据,及节点数据中脚本所写的可用一阶段正向接口和二阶段补偿接口,并调试正确,确保业务系统接口正确。此时会注册TM(事务管理器),定义全局事务的范围。
业务系统接入方在运行时,调用
com.wxsbank.dispatch.facade.state.StateExecuteFacade#executeState()
接口开启一个分布式事务;
状态机json如图2所示:
分布式事务管理模块进行事务配置、节点配置和监控,获取运行节点数据,异步地通过回调事件,将处理结果回调至系统业务方接口;
prism监控模块监听和预警接口调用状态、信息记录数据库,构建预警处理器分析模型,基于分析模型结果调用预警平台发送预警;seata服务模块用于负责事务的提交和在接收到预警时进行回滚,完成分布式事务流程的协调。
在步骤S4中,所述预警处理器分析模型包括:通知补偿状态处理器、警告补偿状态处理器以及警告正向状态处理器;
根据StateMachineName查询到当前配置的状态机数据,如果状态机不存在就接口直接返回“流程不存在”。
根据transactionId查询到当前事务流水执行信息,如果是禁用状态,直接返回“流程被禁用”。
判断当前状态机未开始执行,开启状态机执行,调用stateMachineEngine.startWithBusinessKey轮询该方法,TC不停的协调提交回滚事务。
所述预警包括:
在通知补偿状态处理器下,当接口调用状态为UN时,通过预警平台webhook接口发送预警信息;
在警告补偿状态处理器下,当接口调用状态为UN,将接口运行数据改为SU,设置为手动补偿并记录预警;
在警告正向状态处理器下,当接口调用状态为UN,将接口运行数据改为SU,设置为手动补偿并记录预警。
在seata服务模块中,获取预警处理器分析模型的输出结果,在预警事件下,形成回滚数据,对回滚数据量建立预测分析,输出后续的预测回滚数据;
所述预测分析包括;
系统预设固定的时间周期,采集每一个时间周期下的回滚数据值;
以历史N组时间周期的回滚数据值数据构建原始数据结构列,记为F0;其中F0={M0(1)、M0(2)、……、M0(N)};其中,M0(1)、M0(2)、……、M0(N)分别代表历史N组时间周期的回滚数据值;
对F0作灰色累加生成处理,生成F1={M1(1)、M1(2)、……、M1(N)};其中,M1(1)、M1(2)、……、M1(N)分别代表历史N组时间周期的回滚数据值经灰色累加生成处理后的结果,任一数据的灰色累加方式为:M1(i)=∑M0(j),其中i代表任一数据的序号,i=1,2,……,N;j代表求和下限,求和上限为i;
对F1进行处理,以紧邻均值的方式计算,生成F2={M2(1)、M2(2)、……、M2(N-1)};其中,M2(1)、M2(2)、……、M2(N-1)分别代表紧邻均值的方式计算处理后的结果,所述紧邻均值包括:M2(i)=0.5M1(i)+0.5M1(i-1);
利用F1的白化微分方程输出发展系数r和灰作用量s:s=dM1(i)/dt+rM1(i);
基于F0、F1、F2,利用最小二乘法求解可得:M0(N+1)=(1-er)(M0(1)-s/r)e-rN
其中,M0(N+1)代表在当前数据趋势下,下一个时间周期下的回滚数据值,设置取值数量K,分别计算出K个时间周期的预测回滚数据值;将未来K个时间周期的数据总量送入回滚前置;
所述回滚前置有回滚数据阈值分析,若存在时间周期内预测回滚数据超出回滚数据阈值,输出系统提示至管理端口,提醒管理员对事务进行人工分析。
在本实施例二中,提供一种分布式事务调度管理系统,该系统包括:系统接入模块、sso系统模块、分布式事务管理模块、prism监控模块、seate服务模块和数据库;
所述系统接入模块用于接入distribute client,触发事务;所述sso系统模块用于实现登录鉴权,系统内所有的角色和权限交付给sso系统完成,通过sso系统完成单点登录,统一行内登录标准;所述分布式事务管理模块用于进行事务配置、节点配置和事务监控;所述prism监控模块用于接入skywalking,能够监控所执行的事务,发出事务预警信号;所述seate服务模块用于协调分布式事务,包括创建主事务记录、分支事务记录,并根据分布式事务的状态,调用参与者提交或回滚方法;所述数据库用于记录或调用数据;
所述系统接入模块的输出端与所述分布式事务管理模块的输入端相连接;所述sso系统模块的输出端与所述分布式事务管理模块的输入端相连接;所述分布式事务管理模块的输出端与所述prism监控模块、所述seate服务模块以及数据库的输入端相连接。
所述sso系统模块包括鉴权单元和登录单元;
所述鉴权单元用于获取系统内所有的角色和权限,对登录方进行身份鉴别;所述登录单元用于通过完成单点登录,统一行内登录标准;
所述鉴权单元的输出端与所述登录单元的输入端相连接。
所述分布式事务管理模块包括事务配置单元、节点配置单元和事务监控单元;
所述事务配置单元用于配置状态机数据,各系统接入方在系统中按照saga模式状态机的要求配置好数据;所述配置状态机数据包括直接导入状态机json、采用图形化界面,自定义拖拽不同的状态属性从而生成不同的状态机json以及利用操作后台,通过添加一系列状态属性从而形成状态机json;
所述节点配置单元用于配置状态机中的节点接口信息,包括一阶段正向接口和二阶段补偿接口,系统业务方在系统中定义好一阶段正向接口和二阶段补偿接口,系统配置节点信息,一个节点信息包括一阶段正向接口和二阶段补偿接口,通过自定义注解标识出来;以@Positive代表一阶段正向接口,以@Compensate代表二阶段补偿接口,配置成功之后包括“测试节点”、“禁用/启用”以及“编辑功能”;所述节点配置方式包括:groovy脚本配置、Springbean 配置;所述groovy脚本配置通过groovyServiceInvoker反射调用,脚本中配置应用事务的一阶段正向服务和二阶段补偿服务,系统接入方在发起事务调用时,会解析groovy脚本信息,通过反射的方式去调用接口,而脚本中的逻辑是利用restTemplate结合loadbalanced使用,通过负载均衡的方式调用业务方提供的调用一阶段正向接口服务或二阶段补偿接口;所述Springbean 配置通过SpringBeanServiceInvoker来反射调用方法;
所述事务监控单元用于查看事务执行信息,查看事务执行的轨迹状态。
所述prism监控模块包括监听单元和预警单元;
所述监听单元用于监听接口调用状态、信息记录数据库,构建预警处理器分析模型;所述预警单元基于分析模型结果调用预警平台发送预警信号;
所述监听单元的输出端与所述预警单元的输入端相连接。
所述seate服务模块包括事务协调单元和回滚分析单元;
所述事务协调单元用于创建主事务记录、分支事务记录,分析分布式事务的状态,调用参与者提交事务或回滚数据;所述回滚分析单元用于构建预测分析,实现未来式回滚数据总量分析,并设置相关阈值分析,建立人工提醒;
所述事务协调单元的输出端与所述回滚分析单元的输入端相连接。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种分布式事务调度管理方法,其特征在于:该方法包括以下步骤:
S1、利用后台管理系统通过sso模块登录分布式事务管理模块,完成对分布式事务管理模块中业务的事务配置、事务节点脚本配置;
S2、系统接入方通过client方式接入,调用分布式事务管理模块开启事务;
S3、分布式事务管理模块进行事务配置、节点配置和监控,获取运行节点数据,异步地通过回调事件,将处理结果回调至系统业务方接口;
S4、prism监控模块监听和预警接口调用状态、信息记录数据库,构建预警处理器分析模型,基于分析模型结果调用预警平台发送预警;seata服务模块获取预警处理器分析模型的输出结果,在预警事件下,形成回滚数据,对回滚数据量建立预测分析,分别计算出K个时间周期的预测回滚数据值;将未来K个时间周期的数据总量送入回滚前置;若存在K个时间周期内预测回滚数据超出回滚数据阈值,输出系统提示至管理端口,提醒管理员对事务进行人工分析,其中,K代表取值数量,为常数。
2.根据权利要求1所述的一种分布式事务调度管理方法,其特征在于:在步骤S3中,事务配置包括配置状态机数据,各系统接入方在系统中按照saga模式状态机的要求配置好数据;所述配置状态机数据包括直接导入状态机json、采用图形化界面,自定义拖拽不同的状态属性从而生成不同的状态机json以及利用操作后台,通过添加一系列状态属性从而形成状态机json;节点配置包括配置状态机中的节点接口信息,包括一阶段正向接口和二阶段补偿接口,系统业务方在系统中定义好一阶段正向接口和二阶段补偿接口,系统配置节点信息,一个节点信息包括一阶段正向接口和二阶段补偿接口,通过自定义注解标识出来;所述节点配置方式包括:groovy脚本配置、Springbean 配置;事务监控包括查看事务执行信息,查看事务执行的轨迹状态。
3.根据权利要求2所述的一种分布式事务调度管理方法,其特征在于:在步骤S4中,所述预警处理器分析模型包括:通知补偿状态处理器、警告补偿状态处理器以及警告正向状态处理器;
所述接口调用状态包括SU、RU、FA、UN以及SK;
所述预警包括:
在通知补偿状态处理器下,当接口调用状态为UN时,通过预警平台webhook接口发送预警信息;
在警告补偿状态处理器下,当接口调用状态为UN,将接口运行数据改为SU,设置为手动补偿并记录预警;
在警告正向状态处理器下,当接口调用状态为UN,将接口运行数据改为SU,设置为手动补偿并记录预警。
4.根据权利要求3所述的一种分布式事务调度管理方法,其特征在于:在步骤S4中,还包括:
在seata服务模块中,获取预警处理器分析模型的输出结果,在预警事件下,形成回滚数据,对回滚数据量建立预测分析,输出后续的预测回滚数据;
所述预测分析包括;
系统预设固定的时间周期,采集每一个时间周期下的回滚数据值;
以历史N组时间周期的回滚数据值数据构建原始数据结构列,记为F0;其中F0={M0(1)、M0(2)、……、M0(N)};其中,M0(1)、M0(2)、……、M0(N)分别代表历史N组时间周期的回滚数据值;
对F0作灰色累加生成处理,生成F1={M1(1)、M1(2)、……、M1(N)};其中,M1(1)、M1(2)、……、M1(N)分别代表历史N组时间周期的回滚数据值经灰色累加生成处理后的结果,任一数据的灰色累加方式为:M1(i)=∑M0(j),其中i代表任一数据的序号,i=1,2,……,N;j代表求和下限,求和上限为i;
对F1进行处理,以紧邻均值的方式计算,生成F2={M2(1)、M2(2)、……、M2(N-1)};其中,M2(1)、M2(2)、……、M2(N-1)分别代表紧邻均值的方式计算处理后的结果,所述紧邻均值包括:M2(i)=0.5M1(i)+0.5M1(i-1);
利用F1的白化微分方程输出发展系数r和灰作用量s:s=dM1(i)/dt+rM1(i);
基于F0、F1、F2,利用最小二乘法求解可得:
M0(N+1)=(1-er)(M0(1)-s/r)e-rN;
其中,M0(N+1)代表在当前数据趋势下,下一个时间周期下的回滚数据值,设置取值数量K,分别计算出K个时间周期的预测回滚数据值;将未来K个时间周期的数据总量送入回滚前置;
所述回滚前置有回滚数据阈值分析,若存在时间周期内预测回滚数据超出回滚数据阈值,输出系统提示至管理端口,提醒管理员对事务进行人工分析。
5.一种分布式事务调度管理系统,其特征在于:该系统包括:系统接入模块、sso系统模块、分布式事务管理模块、prism监控模块、seate服务模块和数据库;
所述系统接入模块用于接入distribute client,触发事务;所述sso系统模块用于实现登录鉴权,系统内所有的角色和权限交付给sso系统完成,通过sso系统完成单点登录,统一行内登录标准;所述分布式事务管理模块用于进行事务配置、节点配置和事务监控;所述prism监控模块用于接入skywalking,能够监控所执行的事务,发出事务预警信号;所述seate服务模块用于协调分布式事务,包括创建主事务记录、分支事务记录,并根据分布式事务的状态,调用参与者提交或回滚方法;所述数据库用于记录或调用数据;
所述系统接入模块的输出端与所述分布式事务管理模块的输入端相连接;所述sso系统模块的输出端与所述分布式事务管理模块的输入端相连接;所述分布式事务管理模块的输出端与所述prism监控模块、所述seate服务模块以及数据库的输入端相连接。
6.根据权利要求5所述的一种分布式事务调度管理系统,其特征在于:所述sso系统模块包括鉴权单元和登录单元;
所述鉴权单元用于获取系统内所有的角色和权限,对登录方进行身份鉴别;所述登录单元用于通过完成单点登录,统一行内登录标准;
所述鉴权单元的输出端与所述登录单元的输入端相连接。
7.根据权利要求6所述的一种分布式事务调度管理系统,其特征在于:所述分布式事务管理模块包括事务配置单元、节点配置单元和事务监控单元;
所述事务配置单元用于配置状态机数据,各系统接入方在系统中按照saga模式状态机的要求配置好数据;所述配置状态机数据包括直接导入状态机json、采用图形化界面,自定义拖拽不同的状态属性从而生成不同的状态机json以及利用操作后台,通过添加一系列状态属性从而形成状态机json;
所述节点配置单元用于配置状态机中的节点接口信息,包括一阶段正向接口和二阶段补偿接口,系统业务方在系统中定义好一阶段正向接口和二阶段补偿接口,系统配置节点信息,一个节点信息包括一阶段正向接口和二阶段补偿接口,通过自定义注解标识出来;以@Positive代表一阶段正向接口,以@Compensate代表二阶段补偿接口,配置成功之后包括“测试节点”、“禁用/启用”以及“编辑功能”;所述节点配置方式包括:groovy脚本配置、Springbean 配置;所述groovy脚本配置通过groovyServiceInvoker反射调用,脚本中配置应用事务的一阶段正向服务和二阶段补偿服务,系统接入方在发起事务调用时,会解析groovy脚本信息,通过反射的方式去调用接口,而脚本中的逻辑是利用restTemplate结合loadbalanced使用,通过负载均衡的方式调用业务方提供的调用一阶段正向接口服务或二阶段补偿接口;所述Springbean 配置通过SpringBeanServiceInvoker来反射调用方法;
所述事务监控单元用于查看事务执行信息,查看事务执行的轨迹状态。
8.根据权利要求6所述的一种分布式事务调度管理系统,其特征在于:所述prism监控模块包括监听单元和预警单元;
所述监听单元用于监听接口调用状态、信息记录数据库,构建预警处理器分析模型;所述预警单元基于分析模型结果调用预警平台发送预警信号;
所述监听单元的输出端与所述预警单元的输入端相连接。
9.根据权利要求6所述的一种分布式事务调度管理系统,其特征在于:所述seate服务模块包括事务协调单元和回滚分析单元;
所述事务协调单元用于创建主事务记录、分支事务记录,分析分布式事务的状态,调用参与者提交事务或回滚数据;所述回滚分析单元用于构建预测分析,实现未来式回滚数据总量分析,并设置相关阈值分析,建立人工提醒;
所述事务协调单元的输出端与所述回滚分析单元的输入端相连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310530026.6A CN116303517B (zh) | 2023-05-12 | 2023-05-12 | 一种分布式事务调度管理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310530026.6A CN116303517B (zh) | 2023-05-12 | 2023-05-12 | 一种分布式事务调度管理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116303517A true CN116303517A (zh) | 2023-06-23 |
CN116303517B CN116303517B (zh) | 2023-08-22 |
Family
ID=86789002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310530026.6A Active CN116303517B (zh) | 2023-05-12 | 2023-05-12 | 一种分布式事务调度管理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303517B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995868A (zh) * | 2014-05-20 | 2014-08-20 | 科大国创软件股份有限公司 | 面向分布式系统的全局事务管理器及事务处理方法 |
CN108459919A (zh) * | 2018-03-29 | 2018-08-28 | 中信百信银行股份有限公司 | 一种分布式事务处理方法及装置 |
CN113268471A (zh) * | 2021-06-24 | 2021-08-17 | 京东科技控股股份有限公司 | 处理分布式事务的方法、代理连接池、系统、设备及介质 |
-
2023
- 2023-05-12 CN CN202310530026.6A patent/CN116303517B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995868A (zh) * | 2014-05-20 | 2014-08-20 | 科大国创软件股份有限公司 | 面向分布式系统的全局事务管理器及事务处理方法 |
CN108459919A (zh) * | 2018-03-29 | 2018-08-28 | 中信百信银行股份有限公司 | 一种分布式事务处理方法及装置 |
CN113268471A (zh) * | 2021-06-24 | 2021-08-17 | 京东科技控股股份有限公司 | 处理分布式事务的方法、代理连接池、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116303517B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190332508A1 (en) | Robotic optimization for robotic process automation platforms | |
CN110941630A (zh) | 一种数据库运维方法、装置及系统 | |
CN114978883B (zh) | 网络唤醒的管理方法、装置、电子设备及存储介质 | |
CN111861747A (zh) | 交易链路异常处理方法、装置、电子设备 | |
US20210390010A1 (en) | Software Application Diagnostic Aid | |
CN115982049A (zh) | 性能测试中的异常检测方法、装置和计算机设备 | |
CN116303517B (zh) | 一种分布式事务调度管理系统及方法 | |
CN108415819B (zh) | 一种硬盘故障追踪方法和装置 | |
CN111353763B (zh) | 处理数据的方法、装置、服务器及存储介质 | |
CN112965900A (zh) | 基于区块链的数据审核方法、装置、服务器和存储介质 | |
US10885054B2 (en) | Tracking metadata changes in multiple data stores and generating alerts for detected data impacts | |
CN109754225B (zh) | 一种日前发电计划制定流程的监控系统的设计方法及装置 | |
CN115729786A (zh) | 一种应用于多系统的监控方法、装置、设备及存储介质 | |
CN111368179A (zh) | 云平台流程应用业务审批环节中实现通用操作提示配置及展现控制的方法 | |
CN111488234B (zh) | 一种量化交易状态恢复方法 | |
CN113542103B (zh) | 社交通信群组中账号的邀请监测方法、装置及移动终端 | |
CN114401494B (zh) | 短消息下发异常检测方法、装置、计算机设备及存储介质 | |
CN118037314B (zh) | 一种面向供应链数据可信共享的多链协作溯源系统及方法 | |
US12124862B2 (en) | Dynamic communication sessions within data systems | |
CN114257612B (zh) | 一种数据处理方法 | |
US20220398110A1 (en) | Dynamic communication sessions within data systems | |
CN114866401A (zh) | 一种分布式交易链路日志分析方法及系统 | |
CN116401132A (zh) | 一种日志排查方法、装置、设备以及存储介质 | |
CN118473904A (zh) | 异常根因确定方法、系统、存储介质和程序产品 | |
US10853888B2 (en) | Computing validation and error discovery in computers executing a multi-level tax data validation engine |
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 |