事务处理方法、装置、电子装置和可读存储介质与流程

文档序号:23754674发布日期:2021-01-29 15:38阅读:48来源:国知局
事务处理方法、装置、电子装置和可读存储介质与流程

[0001]
本发明涉及计算机数据处理的技术领域,具体而言,涉及事务处理方法、装置、电子装置和可读存储介质。


背景技术:

[0002]
相关技术中,采用线程池并发处理任务,通过优化线程池配置来优化处理性能,但是,大量的任务可能会进入队列积压,造成服务压力过大,影响服务运行稳定。


技术实现要素:

[0003]
本发明旨在解决上述技术问题的至少之一。
[0004]
为此,本发明的第一目的在于提供一种事务处理方法。
[0005]
本发明的第二目的在于提供一种事务处理装置。
[0006]
本发明的第三目的在于提供一种电子装置。
[0007]
本发明的第四目的在于提供一种可读存储介质。
[0008]
为实现本发明的第一目的,本发明的技术方案提供了一种事务处理方法,包括:生成事务,监测事务的事务一致性,进行事务提交和事务回滚;对事务进行拆解,将拆解后的事务分发至一个或多个消费服务器;对分发的事务,采用消费策略进行消费;监听事务,识别失败事务,采用失败重试策略,对失败事务进行重试。
[0009]
本技术方案中,首先,生成事务,监测事务的事务一致性,进行事务提交和事务回滚,通过对事务一致性的检测,同时提交,同时回滚,提高事务处理的可靠性。第二,对事务进行拆解,将拆解后的事务分发至一个或多个消费服务器,通过对事务进行拆解,再分发至一个或多个消费服务器,提高事务处理的效率,提高事务运行的稳定性和可靠性,适用各种不同的开发场景。第三,对分发的事务,采用消费策略进行消费,消费策略可以通过不同的线程池配置实现,可以基于服务压力、时间段等切换不同的消费模式,进而提高事务执行的灵活度。最后,监听事务,识别失败事务,采用失败重试策略,对失败事务进行重试,可以配置自动和/或手动重试模式,失败重试策略可以根据需求进行配置,提高开发的方便程度,进而,进一步提高事务消费的可靠性。
[0010]
另外,本发明提供的技术方案还可以具有如下附加技术特征:
[0011]
上述技术方案中,事务处理方法,还包括:对事务的执行日志和/或执行链路进行追踪,对执行日志和/或执行链路进行持久化。
[0012]
本技术方案中,通过对事务的执行日志和/或执行链路进行追踪,再将追踪到的执行日志和/或执行链路进行持久化,当出现事务异常回滚时,可以及时查看事务的执行日志和/或执行链路,获取到导致事务异常回滚的服务,进而对出现异常的服务进行优化处理,提高事务处理的可靠性。
[0013]
上述任一技术方案中,事务处理方法,还包括:基于服务器故障,通过云端下载事务。
[0014]
本技术方案中,数据库与服务器是分离的,当事务正在运行中,服务器出现故障,则可以通过云端将未完成的事务进行下载,继续执行,针对服务器故障,通过云端下载事务的方式,提高事务处理的稳定性,增强事务处理的可靠性。
[0015]
上述任一技术方案中,在执行对事务进行拆解之前,还包括:对事务进行事务组装。
[0016]
本技术方案中,通过对事务进行事务组装,然后进行发送,可以提高事务处理的速度,实现高效事务数据的传输。
[0017]
上述任一技术方案中,将拆解后的事务分发至一个或多个消费服务器,包括:设置分发的切片大小;设置分发策略;根据切片大小与分发策略,将事务分发至一个或多个消费服务器。
[0018]
本技术方案中,首先,设置分发的数据粒度,调节分发至消费服务器的数据大小,然后,设置分发策略,根据消费服务器的处理能力,可以设置每个消费服务器的权重,根据权重,设置每个消费服务器接收的事务的数量,通过上述方式,实现根据消费服务器的配置以及事务处理能力的情况,进行事务分发,提高了消费服务器执行事务消费的效率,避免出现服务器压力过大的情况,进而提高服务运行的稳定性能。
[0019]
上述任一技术方案中,将事务分发至一个或多个消费服务器,包括:将事务进行事件组装,将事件分发至一个或多个消费服务器。
[0020]
本技术方案中,通过将事务进行事件组装,然后将事件进行发送,可以提高事务处理的速度,实现高效事务数据的传输。
[0021]
为实现本发明的第二目的,本发明的技术方案提供了一种事务处理装置,包括:事务管理单元、事务分发单元、事务消费单元和事务监听单元;其中,事务管理单元生成事务,监测事务的事务一致性,实现事务提交和事务回滚;事务分发单元对事务进行拆解,将拆解后的事务分发至一个或多个消费服务器;事务消费单元设置于消费服务器中,事务消费单元设有至少一个消费策略,事务分发单元分发的事务根据消费策略进行消费;事务监听单元设有失败重试策略,事务监听单元监听事务管理单元和/或事务分发单元和/或事务消费单元,识别失败事务,采用失败重试策略,对失败事务进行重试。
[0022]
本技术方案中,事务管理单元生成事务,监测事务的事务一致性,进行事务提交和事务回滚,通过对事务一致性的检测,同时提交,同时回滚,提高事务处理的可靠性。事务分发单元对事务进行拆解,将拆解后的事务分发至一个或多个消费服务器,通过对事务进行拆解,再分发至一个或多个消费服务器,提高事务处理的效率,提高事务运行的稳定性和可靠性,适用各种不同的开发场景。事务消费单元对分发的事务,采用消费策略进行消费,消费策略可以通过不同的线程池配置实现,可以基于服务压力、时间段等切换不同的消费模式,进而提高事务执行的灵活度。事务监听单元监听事务,识别失败事务,采用失败重试策略,对失败事务进行重试,其中,可以配置自动和/或手动重试模式,失败重试策略可以根据需求进行配置,提高开发的方便程度,进而,进一步提高事务消费的可靠性。
[0023]
另外,本发明提供的技术方案还可以具有如下附加技术特征:
[0024]
上述技术方案中,消费策略包括分治算法和/或工作窃取算法。
[0025]
本技术方案中,事务通过分治算法和/或工作窃取算法进行消费,可以提高并发场景下事务消费的效率,提高服务器的性能利用率。
[0026]
为实现本发明的第三目的,本发明的技术方案提供了一种电子装置,包括:存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序;其中,处理器在执行计算机程序时,实现如本发明任一技术方案的事务处理方法的步骤。
[0027]
本发明技术方案提供的电子装置实现如本发明任一技术方案的事务处理方法的步骤,因而其具有如本发明任一技术方案的事务处理方法的全部有益效果,在此不再赘述。
[0028]
为实现本发明的第四目的,本发明的技术方案提供了一种可读存储介质,可读存储介质存储有计算机程序,计算机程序被执行时,实现上述任一技术方案的事务处理方法的步骤。
[0029]
本发明技术方案提供的可读存储介质实现如本发明任一技术方案的事务处理方法的步骤,因而其具有如本发明任一技术方案的事务处理方法的全部有益效果,在此不再赘述。
[0030]
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
[0031]
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0032]
图1为本发明一个实施例的事务处理方法流程图之一;
[0033]
图2为本发明一个实施例的事务处理方法流程图之二;
[0034]
图3为本发明一个实施例的事务处理方法流程图之三;
[0035]
图4为本发明一个实施例的事务处理方法流程图之四;
[0036]
图5为本发明一个实施例的事务处理方法流程图之五;
[0037]
图6为本发明一个实施例的事务处理方法流程图之六;
[0038]
图7为本发明一个实施例的事务处理装置示意图;
[0039]
图8为本发明一个实施例的电子装置示意图;
[0040]
图9为本发明一个实施例的事务处理装置框架示意图。
[0041]
其中,图7至图9中附图标记与部件名称之间的对应关系为:
[0042]
100:事务处理装置,110:事务管理单元,120:事务分发单元,130:事务消费单元,140:事务监听单元,150:分布式事务框架,160:可靠事件中心服务,170:模型驱动框架,200:电子装置,210:存储器,220:处理器。
具体实施方式
[0043]
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0044]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0045]
下面参照图1至图9描述本发明一些实施例的事务处理方法、装置、电子装置200和
可读存储介质。
[0046]
实施例1:
[0047]
如图1所示,本实施例提供了一种事务处理方法,包括以下步骤:
[0048]
步骤s102,生成事务,监测事务的事务一致性,进行事务提交和事务回滚;
[0049]
步骤s104,对事务进行拆解,将拆解后的事务分发至一个或多个消费服务器;
[0050]
步骤s106,对分发的事务,采用消费策略进行消费;
[0051]
步骤s108,监听事务,识别失败事务,采用失败重试策略,对失败事务进行重试。
[0052]
本实施例中,首先,生成事务,监测事务的事务一致性,进行事务提交和事务回滚,可以通过事务管理单元110实现,通过对事务一致性的检测,同时提交,同时回滚,提高事务处理的可靠性。第二,对事务进行拆解,将拆解后的事务分发至一个或多个消费服务器,可以通过事务分发单元120实现,通过对事务进行拆解,再分发至一个或多个消费服务器,提高事务处理的效率,提高事务运行的稳定性和可靠性,适用各种不同的开发场景。第三,对分发的事务,采用消费策略进行消费,可以通过事务消费单元130实现,消费策略可以通过不同的线程池配置实现,可以基于服务压力、时间段等切换不同的消费模式,进而提高事务执行的灵活度。最后,监听事务,识别失败事务,采用失败重试策略,对失败事务进行重试,可以通过事务监听单元140实现,可以配置自动和/或手动重试模式,失败重试策略可以根据需求进行配置,提高事务处理的效率和稳定性,进而,进一步提高事务消费的可靠性。
[0053]
本实施例的一种事务处理方法,不局限于单纯的分布式事务处理,为一种高效可靠的海量事务处理的方法,读海量事务并发处理具有稳定性和高效性。
[0054]
实施例2:
[0055]
如图2所示,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
[0056]
事务处理方法,还包括以下步骤:
[0057]
步骤s202,对事务的执行日志和/或执行链路进行追踪,对执行日志和/或执行链路进行持久化。
[0058]
针对事务提交时,导致事务异常回滚时,可以通过追踪对事务的执行日志和/或执行链路,查询导致事务异常回滚的服务,持久化可以到硬盘或者其它存储器中,保存时间根据具体要求进行设置。
[0059]
本实施例中,通过对事务的执行日志和/或执行链路进行追踪,再将追踪到的执行日志和/或执行链路进行持久化,当出现事务异常回滚时,可以及时查看事务的执行日志和/或执行链路,获取到导致事务异常回滚的服务,进而对出现异常的服务进行优化处理,提高事务处理的可靠性。
[0060]
实施例3:
[0061]
如图3所示,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
[0062]
事务处理方法,还包括以下步骤:
[0063]
步骤s302,基于服务器故障,通过云端下载事务。
[0064]
本实施例中,数据库与服务器是分离的,当事务正在运行中,服务器出现故障,则可以通过云端将未完成的事务进行下载,继续执行,针对服务器故障,通过云端下载事务的
方式,提高事务处理的稳定性,增强事务处理的可靠性。
[0065]
实施例4:
[0066]
如图4所示,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
[0067]
在执行对事务进行拆解之前,还包括以下步骤:
[0068]
步骤s402,对事务进行事务组装。
[0069]
举例而言,事务管理单元110可以对事务进行事务组装,然后,发送至事务分发单元120,事务分发单元120再对事务进行拆解。
[0070]
本实施例中,通过对事务进行事务组装,然后进行发送,可以提高事务处理的速度,实现高效事务数据的传输。
[0071]
实施例5:
[0072]
如图5所示,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
[0073]
将拆解后的事务分发至一个或多个消费服务器,包括以下步骤:
[0074]
步骤s502,设置分发的切片大小;
[0075]
步骤s504,设置分发策略;
[0076]
步骤s506,根据切片大小与分发策略,将事务分发至一个或多个消费服务器。
[0077]
本实施例中,首先,设置分发的切片大小,通过设置切片大小,将大数据切分成等量多个小数据块,进而调节分发至消费服务器的数据大小,然后,设置分发策略,根据消费服务器的处理能力,可以设置每个消费服务器的权重,根据权重,设置每个消费服务器接收的事务的数量,通过上述方式,实现根据消费服务器的配置以及事务处理能力的情况,进行事务分发,提高了消费服务器执行事务消费的效率,避免出现服务器压力过大的情况,进而提高服务运行的稳定性能,提高事务并发能力。
[0078]
实施例6:
[0079]
如图6所示,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
[0080]
将事务分发至一个或多个消费服务器,包括以下步骤:
[0081]
步骤s602,将事务进行事件组装,将事件分发至一个或多个消费服务器。
[0082]
举例而言,事务分发单元120将可以事务进行事件组装,然后,将事件分发至一个或多个消费服务器。
[0083]
本实施例中,通过将事务进行事件组装,然后将事件进行发送,可以提高事务处理的速度,实现高效事务数据的传输。
[0084]
实施例7:
[0085]
如图7所示,本实施例提供了一种事务处理装置100,包括:事务管理单元110、事务分发单元120、事务消费单元130和事务监听单元140;其中,事务管理单元110生成事务,监测事务的事务一致性,实现事务提交和事务回滚;事务分发单元120对事务进行拆解,将拆解后的事务分发至一个或多个消费服务器;事务消费单元130设置于消费服务器中,事务消费单元130设有至少一个消费策略,事务分发单元120分发的事务根据消费策略进行消费;事务监听单元140设有失败重试策略,事务监听单元140监听事务管理单元110和/或事务分
发单元120和/或事务消费单元130,识别失败事务,采用失败重试策略,对失败事务进行重试。
[0086]
其中,每个消费服务器内均设置有事务消费单元130。
[0087]
本实施例中,事务管理单元110生成事务,监测事务的事务一致性,进行事务提交和事务回滚,通过对事务一致性的检测,同时提交,同时回滚,提高事务处理的可靠性。事务分发单元120对事务进行拆解,将拆解后的事务分发至一个或多个消费服务器,通过对事务进行拆解,再分发至一个或多个消费服务器,提高事务处理的效率,提高事务运行的稳定性和可靠性,适用各种不同的开发场景。事务消费单元130对分发的事务,采用消费策略进行消费,消费策略可以通过不同的线程池配置实现,可以基于服务压力、时间段等切换不同的消费模式,进而提高事务执行的灵活度。事务监听单元140监听事务,识别失败事务,采用失败重试策略,对失败事务进行重试,其中,可以配置自动和/或手动重试模式,失败重试策略可以根据需求进行配置,提高开发的方便程度,进而,进一步提高事务消费的可靠性。
[0088]
实施例8:
[0089]
除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
[0090]
消费策略包括分治算法和/或工作窃取算法。
[0091]
本实施例中,事务通过分治算法和/或工作窃取算法进行消费,可以提高并发场景下事务消费的效率,提高服务器的性能利用率。
[0092]
实施例9:
[0093]
如图8所示,本实施例提供了一种电子装置200,包括:存储器210和处理器220,存储器210存储有程序或指令,处理器220执行程序或指令;其中,处理器220在执行程序或指令时,实现如本发明任一实施例的事务处理方法的步骤。
[0094]
实施例10:
[0095]
本实施例提供了一种可读存储介质,可读存储介质存储有程序或指令,程序或指令被处理器执行时,实现上述任一实施例的事务处理方法的步骤。
[0096]
实施例11:
[0097]
本实施例提供了一种事务处理装置100。
[0098]
海量事务并发处理的场景追求高效,目前解决方案为直接使用线程池并发处理任务,通过优化线程池配置来优化处理性能,存在几点缺陷:
[0099]
(1)线程池实现精确的限流策略较为困难,大量的任务可能会进入队列积压,造成服务压力过大,影响服务运行稳定。
[0100]
(2)线程池创建的线程执行任务完全独立,线程执行任务缺少交互,造成cpu利用率降低,开发自主优化难度较大。
[0101]
海量事务并发场景下对事务可靠性和高效性要求都很高,一般解决方案都是通过数据库事务和分布式事务框架解决事务问题,现阶段市面上可供选择的分布式框架很多,与spring框架(开源的服务端开发框架)适配难度较低,但与mdd框架(模型驱动开发框架)的适配需要花费大量时间和精力进行适配以及调优,而且生态构建也相对困难。本实施例中,与mdd框架同源的yts分布式事务框架(基于saga分布式事务解决方案封装实现的分布式事务框架)在这种应用场景下能最大化的解决适配效率问题,需求跟进和性能优化也更加方便,也有利于mdd框架开发生态的共建共荣。
[0102]
针对以上两个问题,本实施例提供如下优化方案,保障海量事务并发的高效稳定:
[0103]
(1)基于数据库事务管理和yts分布式事务框架实现的事务管理单元110,提供不同场景下的事务一致性解决方案;
[0104]
(2)应用可靠事件eos(基于消息队列(mq)实现的可靠事件中心服务)实现海量事务的拆解和分发,应用eos智能分发和应用横向扩展搭建高效可靠的事务分发单元120;
[0105]
(3)基于eos事件推送和拉取模式实现的被动和主动可配置的事务消费单元130,可以基于服务压力、时间段等切换不同的消费模式;
[0106]
(4)基于yts分布式框架可靠事务实现的事务监听单元140,自动监听失败的事务,实现多种不同的失败重试策略。
[0107]
本实施例实现了一种高效可靠海量事务处理装置100,设有可靠的事务管理单元110,高效的事务分发单元120,灵活的事务消费单元130,智能的事务监听单元140。
[0108]
本实施例实现以上技术效果的两大核心为:eos可靠事件提供可靠、高效、灵活的事务管理、分发、消费能力,yts分布式框架提供智能的事务监听机制。
[0109]
本实施例的一种高效可靠海量事务处理装置100,简版架构图9所示,其中,事务管理单元110采用分布式事务框架150,分布式事务框架150可以为yts分布式事务框架,yts分布式事务框架提供强大的事务管理能力,包括事务一致性管理,事务执行日志/链路追踪,失败事务存储和云端下载等。事务分发单元120采用可靠事件中心服务160,可靠事件中心服务160可以为eos可靠事件,eos可靠事件提供基于事件的事务拆分和分发能力,提供可配置的分发模式(推送/拉取)和分发颗粒度(切片大小),适用各种不同的开发场景。事务消费单元130采用模型驱动框架170,模型驱动框架170可以采用mdd框架,mdd框架基于eos可靠事件分发机制提供了默认的消费策略,通过分治算法和工作窃取算法提高并发场景下事务消费的效率,提高服务器性能利用率。事务监听单元140采用模型驱动框架170,模型驱动框架170可以采用mdd框架,监控yts分布式事务框架事务一致性结果,提供默认的事务失败处理策略,可配置自动和手动重试模式,失败补偿策略等,方便开发,进一步提高事务消费可靠性。
[0110]
基于上述各个单元,本实施例相较相关技术在处理海量事务场景上有益效果为:
[0111]
(1)海量事务通过eos可靠事件分发到不同的服务处理,降低各服务压力,提高事务并发能力;通过yts分布式事务框架解决事务一致性难题,实现事务监听和重试策略,最终实现海量事务处理的高效稳定,该方法实现模式同时解决了海量事务处理的效率和稳定的难题;
[0112]
(2)使用事件分发机制并在框架代码中进行扩展,使事件分发流量控制的功能更加准确,同时事件大小动态拆分的扩展实现,理论上能做到任务执行示例越多执行效率越高,能适应不同的操作场景;
[0113]
(3)eos事件框架为方便开发扩展提供推送和拉取两种事件分发模式,可以结合调度任务动态平衡服务压力,提高服务稳定性;
[0114]
本实施例基于简单场景验证数据如下(所有任务并行):
[0115]
各测试服务配置如下:
[0116]
mdd-组织员工(主服务):最大4核4g,1个服务器。
[0117]
mdd-组织员工-导入工具:最大4核8g,3个服务器。
[0118]
测试对比结果如表1所示:
[0119]
表1测试对比结果
[0120][0121][0122]
其中,第一时长为未采用本实施例的事务处理装置100的数据处理时长,第二时长为采用本实施例的事务处理装置100的数据处理时长,通过第一时长与第二时长的对比,第二时长明显小于第一时长,事务处理装置100可以有效地缩短数据处理时长,提高数据处理效率。
[0123]
本实施例的事务处理装置100,在单次导入指标数量很多的情况下,运行稳定,具有很好的可靠性。
[0124]
综上,本发明实施例的有益效果为:
[0125]
本实施例中,首先,生成事务,监测事务的事务一致性,进行事务提交和事务回滚,可以通过事务管理单元110实现,通过对事务一致性的检测,同时提交,同时回滚,提高事务处理的可靠性。第二,对事务进行拆解,将拆解后的事务分发至一个或多个消费服务器,可以通过事务分发单元120实现,通过对事务进行拆解,再分发至一个或多个消费服务器,提高事务处理的效率,提高事务运行的稳定性和可靠性,适用各种不同的开发场景。第三,对分发的事务,采用消费策略进行消费,可以通过事务消费单元130实现,消费策略可以通过不同的线程池配置实现,可以基于服务压力、时间段等切换不同的消费模式,进而提高事务执行的灵活度。最后,监听事务,识别失败事务,采用失败重试策略,对失败事务进行重试,可以通过事务监听单元140实现,可以配置自动和/或手动重试模式,失败重试策略可以根据需求进行配置,提高事务处理的效率和稳定性,进而,进一步提高事务消费的可靠性。
[0126]
在本发明中,术语“第一”、“第二”、“第三”仅用于描述的目的,而不能理解为指示或暗示相对重要性;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本
领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0127]
本发明的描述中,需要理解的是,术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或单元必须具有特定的方向、以特定的方位构造和操作,因此,不能理解为对本发明的限制。
[0128]
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0129]
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1