一种事务处理方法、装置、电子设备及存储介质

文档序号:168505 发布日期:2021-10-29 浏览:32次 >En<

阅读说明:本技术 一种事务处理方法、装置、电子设备及存储介质 (Transaction processing method and device, electronic equipment and storage medium ) 是由 赵方舟 陈欣然 李思琪 张琦 于 2021-07-29 设计创作,主要内容包括:本发明实施例公开了一种事务处理方法、装置、电子设备及存储介质。该方法包括:事务主动方处理产品标签的事务,并通过消息中间件对产品标签的事务的处理消息进行写消息操作,得到待处理消息;事务被动方响应于事务主动方的消息处理请求,消费消息中间件中的待处理消息;事务被动方通过消息中间件通知事务主动方待处理消息的第一消息处理结果,事务主动方根据第一消息处理结果确定是否提交产品标签的事务。通过运行本发明实施例所提供的技术方案,可以解决标签数据存储方式基于关系型数据库,在进行产品标签的事务处理时,使用单应用单任务模式进行同步处理,执行效率低的问题,实现提高事务的处理效率的效果。(The embodiment of the invention discloses a transaction processing method, a transaction processing device, electronic equipment and a storage medium. The method comprises the following steps: the transaction active side processes the transaction of the product label, and performs message writing operation on the processing message of the transaction of the product label through the message middleware to obtain a message to be processed; the transaction passive side responds to the message processing request of the transaction active side and consumes the messages to be processed in the message middleware; the transaction passive side informs the transaction active side of a first message processing result of the message to be processed through the message middleware, and the transaction active side determines whether to submit the transaction of the product label according to the first message processing result. By operating the technical scheme provided by the embodiment of the invention, the problem that the execution efficiency is low because the label data storage mode is based on the relational database and a single-application single-task mode is used for synchronous processing when the transaction of the product label is processed can be solved, and the effect of improving the processing efficiency of the transaction is realized.)

一种事务处理方法、装置、电子设备及存储介质

技术领域

本发明实施例涉及计算机技术,尤其涉及一种事务处理方法、装置、电子设备及存储介质。

背景技术

随着现代互联网的发展以及智能设备的快速更新换代,各类互联网应用面对的并发处理压力越来越大,同时用户对请求响应时间的要求也愈加苛刻,例如对产品的标签数据的请求响应。在数据量较大时,查询效率耗时高。针对大数据量的处理与存储方面已达一定瓶颈的背景下,由于单个数据库处理能力有限,需要将请求打散分布到多个服务器,导致查询、插入、更新等操作都会变慢,加字段、加索引、机器迁移等操作都会产生高负载,影响服务的提供。

目前海量产品的标签数据存储方式基于关系型数据库,在进行产品标签的事务处理时,使用单应用单任务模式进行同步处理,执行效率低。

发明内容

本发明实施例提供一种事务处理方法、装置、电子设备及存储介质,以实现提高事务的处理效率。

第一方面,本发明实施例提供了一种事务处理方法,该方法包括:

事务主动方处理产品标签的事务,并通过消息中间件对所述产品标签的事务的处理消息进行写消息操作,得到待处理消息;

事务被动方响应于所述事务主动方的消息处理请求,消费所述消息中间件中的所述待处理消息;

所述事务被动方通过所述消息中间件通知所述事务主动方所述待处理消息的第一消息处理结果,所述事务主动方根据所述第一消息处理结果确定是否提交所述产品标签的事务。

第二方面,本发明实施例还提供了一种事务处理装置,该装置包括:

待处理消息获得模块,用于事务主动方处理产品标签的事务,并通过消息中间件对所述产品标签的事务的处理消息进行写消息操作,得到待处理消息;

待处理消息消费模块,用于事务被动方响应于所述事务主动方的消息处理请求,消费所述消息中间件中的所述待处理消息;

事务提交确定模块,用于所述事务被动方通过所述消息中间件通知所述事务主动方所述待处理消息的第一消息处理结果,所述事务主动方根据所述第一消息处理结果确定是否提交所述产品标签的事务。

第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的事务处理方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的事务处理方法。

本发明实施例通过事务主动方处理产品标签的事务,并通过消息中间件对所述产品标签的事务的处理消息进行写消息操作,得到待处理消息;事务被动方响应于所述事务主动方的消息处理请求,消费所述消息中间件中的所述待处理消息;所述事务被动方通过所述消息中间件通知所述事务主动方所述待处理消息的第一消息处理结果,所述事务主动方根据所述第一消息处理结果确定是否提交所述产品标签的事务,解决标签数据存储方式基于关系型数据库,在进行产品标签的事务处理时,使用单应用单任务模式进行同步处理,执行效率低的问题,实现提高事务的处理效率的效果。

附图说明

图1为本发明实施例一提供的一种事务处理方法的流程图;

图2为本发明实施例二提供的一种事务处理装置的结构示意图;

图3为本发明实施例三提供的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种事务处理方法的流程图,本实施例可适用于对产品标签的事务进行处理,便于后续对标签数据进行查询的情况,该方法可以由本发明实施例所提供的事务处理装置来执行,该装置可以由软件和/或硬件的方式实现。参见图1,本实施例提供的事务处理方法,包括:

步骤110、事务主动方处理产品标签的事务,并通过消息中间件对所述产品标签的事务的处理消息进行写消息操作,得到待处理消息。

其中,主动开始处理的事务方称为事务主动方,例如为主动更新数据的事物方。产品标签的事务为与产品标签相关的事务,例如对产品标签的更新、添加等。产品标签为用来描述产品实体特征的数据形式。通过标签对产品实体进行刻画,从多角度反映产品实体的特征。例如银行中的理财产品等。

事务主动方处理产品标签的事务为事务主动方主动对产品标签的事务进行处理,处理方式可以为事务主动方在本地数据库中对产品标签进行批量事务处理,例如批量更新。

通过消息中间件对产品标签的事务的处理消息进行写消息操作,可以为在事务主动方对产品标签的事务进行处理的同时生成同步文件,将该同步文件写入消息中间件,得到待处理消息。其中,消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统,例如RocketMQ等。

可选的,为了数据的一致性,当执行步骤110,遇到错误需要重试时,容错处理规则可以为事务回滚,相当于什么事都没发生。

步骤120、事务被动方响应于所述事务主动方的消息处理请求,消费所述消息中间件中的所述待处理消息。

其中,事务被动方为根据事务主动方发出的消息处理请求进行事务处理的事物方。一个事务主动方可以对应一个或多个事务被动方。事务主动方可以通过发送批量消息处理请求分别告知事务被动方处理消息中间件中的待处理消息。

若存在多个事务被动方,则每个事务被动方处理的待处理消息可以预先分配,也可以随机分配,本实施例对此不进行限制。消费消息中间件中的待处理消息,可以为将待处理消息对应的数据写入数据库,本实施例对此不进行限制。

可选的,为了数据的一致性,当执行步骤120,遇到错误需要重试时,容错处理规则可以为由于未处理的事务保存在事务主动方,可以重试或者撤销本地的事务操作。

若事务被动方消费异常,需要不断重试,事务处理逻辑需要保证幂等性。

本实施例中,可选的,事务被动方响应于所述事务主动方的消息处理请求,消费所述消息中间件中的所述待处理消息,包括:

所述事务被动方响应于所述事务主动方的消息处理请求从所述候选待处理消息中确定目标待处理消息;

获取消息处理记录表,并根据所述消息处理记录表确定所述目标待处理消息的历史处理记录;

根据所述历史处理记录消费所述目标待处理消息。

其中,目标待处理消息为每个事务被动方处理的消息,可以根据消息处理请求中事务被动方与待处理消息的预设关系确定。

消息处理记录表可以由事务主动方在本地建立和记录,用于记录消息的发生和处理状态,即消息的每一个状态都可记录在该表中。

根据消息处理记录表确定目标待处理消息的历史处理记录,其中历史处理记录中可以包括目标待处理消息的处理状态,若处理状态为处理中或已完成,则表明该目标待处理消息曾经被处理过,则不必再次进行处理。避免对同一条待处理消息重复处理,提高事务的处理效率。

步骤130、所述事务被动方通过所述消息中间件通知所述事务主动方所述待处理消息的第一消息处理结果,所述事务主动方根据所述第一消息处理结果确定是否提交所述产品标签的事务。

其中,当事务被动方处理待处理消息后,得到待处理消息的第一消息处理结果。每个事务被动方执行消息处理操作,但不进行提交,记录UNDO日志和REDO日志。若事务被动方执行成功则给事务主动方反馈的第一消息处理结果为成功;若执行失败,则给事务主动方反馈的第一消息处理结果为失败等,本实施例对此不进行限制。

事务主动方根据第一消息处理结果确定是否提交产品标签的事务,其中,提交产品标签的事务为实际执行标签产品的事务,即事务提交后,真正执行对应的事务,例如将更新后的产品标签实际下发至各事务被动方。

若存在一个第一消息处理结果为失败,可以通过消息中间件通知事务主动方进行事务回滚,即不提交产品标签的事务。如果多个事务被动方已经消费信息,事务主动方需要回滚事务时通知事务被动方进行全部回滚。

本实施例中,可选的,所述事务主动方根据所述第一消息处理结果确定是否提交所述产品标签的事务,包括:

若所述第一消息处理结果中存在处理超时结果,则通知与所述处理超时结果对应的事务被动方再次处理,得到第二消息处理结果;

根据所述第二消息处理结果确定是否提交所述产品标签的事务。

若第一消息处理结果中存在处理超时结果,则通知与处理超时结果对应的事务被动方再次处理,即若事务被动方消费待处理消息超时,则重新进行消费,得到第二消息处理结果。若第二消息处理结果为成功,且其它消息处理结果均为成功,则确定提交产品标签的事务。避免由于网络原因等暂时性问题导致处理超时,直接将事务回滚,提高事务处理的成功率。

本实施例中,可选的,所述事务主动方根据所述第一消息处理结果确定是否提交所述产品标签的事务,包括:

若所述第一消息处理结果均为成功,则确定提交所述产品标签的事务。

当第一消息处理结果均为成功时,则确定提交产品标签的事务,即存在一个失败,则事务回滚,保证了分布式事务中对强一致性的要求。

本实施例中,可选的,事务被动方响应于所述事务主动方的消息处理请求,消费所述消息中间件中的所述待处理消息,包括:

所述事务被动方响应于所述事务主动方的消息处理请求,通过预设分片算法对所述待处理消息进行分片操作,得到局部待处理消息;

所述事务被动方消费各所述局部待处理消息,以将与局部待处理数据对应的局部标签数据写进与各所述事务被动方对应的主数据库中,得到写入标签数据;

根据所述写入标签数据构建至少一个与所述主数据库对应的从数据库,以从所述从数据库中读取目标标签数据。

事务被动方响应于事务主动方的消息处理请求,获得分片要求,例如按照产品对应的表的主键对待处理消息进行分片,示例性的,产品对应的表主键为编号1-100,则可以按照编号每连续十条进行一次分片,得到十份局部待处理消息。

通过预设分片算法对待处理消息进行分片操作,得到局部待处理消息,预设分片算法可以为sharding-JDBC分片算法,本实施例对此不进行限制。事务被动方将各局部待处理消息分别写进与各事务被动方对应的主数据库中,得到写入标签数据。此时主数据库中的数据仅为写入的标签数据。

根据写入标签数据构建至少一个与主数据库对应的从数据库,从数据库用于备份主数据库中的数据内容。同一个主数据库对应的不同的从数据库存储同样的数据内容,以便于后续查询时从空闲的从数据库中进行查询,提高查询效率。

主数据库用于写入标签数据,从数据用于后续查询时读取查询产品对应的目标标签数据。透明化的读写分离可以让使用方尽量像使用一个数据库一样来使用主从数据库模型。通过将主数据库限定于写数据,多个从数据库完成读数据的操作来优化数据库中的读写瓶颈。

本实施例所提供的技术方案,通过事务主动方处理产品标签的事务,并通过消息中间件对所述产品标签的事务的处理消息进行写消息操作,得到待处理消息;事务被动方响应于所述事务主动方的消息处理请求,消费所述消息中间件中的所述待处理消息;所述事务被动方通过所述消息中间件通知所述事务主动方所述待处理消息的第一消息处理结果,所述事务主动方根据所述第一消息处理结果确定是否提交所述产品标签的事务,保证了数据一致性,消费不丢失性,提高了消息的消费效率,从而提高事务的处理效率。

实施例二

图2为本发明实施例二提供的一种事务处理装置的结构示意图。该装置可以由硬件和/或软件的方式来实现,可执行本发明任意实施例所提供的一种事务处理方法,具备执行方法相应的功能模块和有益效果。如图2所示,该装置包括:

待处理消息获得模块210,用于事务主动方处理产品标签的事务,并通过消息中间件对所述产品标签的事务的处理消息进行写消息操作,得到待处理消息;

待处理消息消费模块220,用于事务被动方响应于所述事务主动方的消息处理请求,消费所述消息中间件中的所述待处理消息;

事务提交确定模块230,用于所述事务被动方通过所述消息中间件通知所述事务主动方所述待处理消息的第一消息处理结果,所述事务主动方根据所述第一消息处理结果确定是否提交所述产品标签的事务。

本发明实施例通过事务主动方处理产品标签的事务,并通过消息中间件对所述产品标签的事务的处理消息进行写消息操作,得到待处理消息;事务被动方响应于所述事务主动方的消息处理请求,消费所述消息中间件中的所述待处理消息;所述事务被动方通过所述消息中间件通知所述事务主动方所述待处理消息的第一消息处理结果,所述事务主动方根据所述第一消息处理结果确定是否提交所述产品标签的事务,解决标签数据存储方式基于关系型数据库,在进行产品标签的事务处理时,使用单应用单任务模式进行同步处理,执行效率低的问题,实现提高事务的处理效率的效果。

在上述各技术方案的基础上,可选的,所述事务提交确定模块,包括:

第二消息处理结果获得单元,用于若所述第一消息处理结果中存在处理超时结果,则通知与所述处理超时结果对应的事务被动方再次处理,得到第二消息处理结果;

第一事务提交确定单元,用于根据所述第二消息处理结果确定是否提交所述产品标签的事务。

在上述各技术方案的基础上,可选的,所述事务提交确定模块,包括:

第二事务提交确定单元,用于若所述第一消息处理结果均为成功,则确定提交所述产品标签的事务。

在上述各技术方案的基础上,可选的,所述待处理消息消费模块,包括:

目标待处理消息确定单元,用于所述事务被动方响应于所述事务主动方的消息处理请求从所述候选待处理消息中确定目标待处理消息;

历史处理记录确定单元,用于获取消息处理记录表,并根据所述消息处理记录表确定所述目标待处理消息的历史处理记录;

目标待处理消息消费单元,用于根据所述历史处理记录消费所述目标待处理消息。

在上述各技术方案的基础上,可选的,所述待处理消息消费模块,包括:

局部待处理消息获得单元,用于所述事务被动方响应于所述事务主动方的消息处理请求,通过预设分片算法对所述待处理消息进行分片操作,得到局部待处理消息;

局部待处理消息消费单元,用于所述事务被动方消费各所述局部待处理消息,以将与局部待处理数据对应的局部标签数据写进与各所述事务被动方对应的主数据库中,得到写入标签数据;

从数据库构建单元,用于根据所述写入标签数据构建至少一个与所述主数据库对应的从数据库,以从所述从数据库中读取目标标签数据。

实施例三

图3为本发明实施例三提供的一种电子设备的结构示意图,如图3所示,该电子设备包括处理器30、存储器31、输入装置32和输出装置33;电子设备中处理器30的数量可以是一个或多个,图3中以一个处理器30为例;电子设备中的处理器30、存储器31、输入装置32和输出装置33可以通过总线或其他方式连接,图3中以通过总线连接为例。

存储器31作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的事务处理方法对应的程序指令/模块。处理器30通过运行存储在存储器31中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的事务处理方法。

存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器31可进一步包括相对于处理器30远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

实施例四

本发明实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种事务处理方法,该方法包括:

事务主动方处理产品标签的事务,并通过消息中间件对所述产品标签的事务的处理消息进行写消息操作,得到待处理消息;

事务被动方响应于所述事务主动方的消息处理请求,消费所述消息中间件中的所述待处理消息;

所述事务被动方通过所述消息中间件通知所述事务主动方所述待处理消息的第一消息处理结果,所述事务主动方根据所述第一消息处理结果确定是否提交所述产品标签的事务。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的事务处理方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述事务处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种设备控制方法、装置、服务器以及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!