一种业务数据异步存储的方法、系统及介质技术方案

技术编号:29673150 阅读:15 留言:0更新日期:2021-08-13 21:54
本发明专利技术公开了一种业务数据异步存储的方法,包括以下步骤:启用业务数据处理线程:运行系统业务,将系统业务生成的业务数据缓存至Redis缓存队列,并启用若干业务数据处理线程;线程锁获取:所述业务数据处理线程根据权重获取线程锁的携带权;业务数据获取:获取到所述线程锁的携带权的所述业务数据处理线程将所述业务数据发送至数据库;业务数据保存:将所述业务数据保存至数据库,并根据保存结果执行数据校正操作或业务数据移除操作,通过上述方式,本发明专利技术能够脱落系统业务接口实现业务数据的处理,而且可以批量的处理业务数据,且在服务器出现数据偏移导致映射关系异常的情况下执行告警指示,在业务数据保存失败时,也可以执行告警指示。

【技术实现步骤摘要】
一种业务数据异步存储的方法、系统及介质
本专利技术涉及数据存储
,特别是涉及一种业务数据异步存储的方法、系统及介质。
技术介绍
在高并发系统运行过程中,一些核心的业务功能需要能够承载普通业务功能的几十倍甚至更高的并发访问,在这个过程中有些核心的业务数据是不能出现任何的遗漏或者不准确情况。CAS是实现多线程之间同步的一种方法,CAS(CompareandSwap)是比较和交换,是CPU提供的一种原子指令,又称为CPU硬件同步原语,用于实现避免程序锁死锁的状况,即两个程序锁竞争相同的资源,而双方停滞不动的状况。为了保证业务数据不出现错误遗漏的情况,目前最常用的方式是使用事务回滚机制,但是该事务回滚机制存在以下几点缺点:1、数据处理速度慢,部分业务数据存储量大,导致较多的磁盘读写,影响接口响应速度。2、不够友好,非核心的业务数据可能导致主线功能的失败,影响用户体验。3、开发人员不能够实时获取线上的业务处理的异常的业务数据。
技术实现思路
本专利技术主要解决的是使用事务回滚机制处理业务数据,导致数据处理速度慢影响接口反应速度、不够友好和不能及时获取异常的业务数据的问题。为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种业务数据异步存储的方法,包括以下步骤:启用业务数据处理线程:运行系统业务,将系统业务生成的业务数据缓存至Redis缓存队列,并启用若干业务数据处理线程;线程锁获取:所述业务数据处理线程根据权重获取线程锁的携带权;业务数据获取:获取到所述线程锁的携带权的所述业务数据处理线程将所述业务数据发送至数据库;业务数据保存:将所述业务数据保存至数据库,并根据保存结果执行数据校正操作或业务数据移除操作。进一步,所述启用业务数据处理线程步骤具体包括:所述Redis缓存队列将所述业务数据分为若干关键段;所述关键段运行于根据所述系统业务生成所述业务数据CPU中。进一步,所述线程锁获取步骤进一步包括:所述业务数据处理线程确定所述CPU内的所述关键段;根据所述CPU的同步原语,控制所述线程锁锁定所述关键段;所述业务数据处理线程获取所述线程锁的携带权。进一步,将获取到所述线程锁的携带权的所述业务数据处理线程命名为高级线程;所述高级线程携带所述线程锁与所述关键段建立映射关系;所述高级线程根据映射关系获取关键段;根据获取结果执行关键段运行操作或所述线程锁获取步骤。进一步,所述根据获取结果执行关键段运行操作或所述线程锁获取步骤进一步包括:若所述高级线程根据所述映射关系读取到所述关键段,则执行所述业务数据保存步骤;若所述高级线程根据所述映射关系未读取到所述关键段,则所述高级线程释放所述线程锁,发出第一告警指示,并回到所述线程锁获取步骤。进一步,所述业务数据保存步骤进一步包括:若所述关键段保存至所述数据库失败,则将所述关键段执行数据校正操作;若所述关键段保存成功,则执行业务数据移除操作。进一步,所述若所述关键段保存至所述数据库失败,则将所述关键段执行数据校正操作的步骤进一步包括:将所述关键段对应的代码通过数据校正程序进行逐条遍历,并发出第二告警指示。进一步,所述若所述关键段保存成功,则执行业务数据移除操作的步骤进一步包括:在所述Redis缓存队列将所述关键段对应的业务数据移除;所述关键段释放所述线程锁的携带权,并回到所述线程锁获取步骤。本专利技术提供一种业务数据异步存储的系统,包括:系统业务模块、Redis缓存模块、线程模块、告警模块和数据库模块;所述Redis缓存模块分别与所述系统业务模块和所述线程模块相连,所述线程模块分别与所述告警模块和所述数据库模块相连;所述系统业务模块用于运行系统业务,并根据所述系统业务生成业务数据;所述Redis缓存模块用于将所述业务数据缓存;所述线程模块用于启用若干业务数据处理线程,所述告警模块用于执行告警指示;所述数据库模块用于保存所述业务数据;所述业务数据处理线程用于获取线程锁后与所述业务数据建立映射关系;当所述业务数据处理线程根据映射关系获取到所述业务数据时,所述业务数据处理线程将所述业务数据发送至数据库模块;当所述业务数据处理线程根据映射关系未获取到所述业务数据时,所述告警模块发出告警指示。本专利技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现任一项所述的业务数据异步存储的方法步骤。本专利技术的有益效果是:1、本专利技术所述的业务数据异步存储的方法,可以实现脱落系统业务接口实现业务数据的处理,而且可以批量的处理业务数据,且在服务器出现数据偏移导致映射关系异常的情况下执行告警指示,在业务数据保存失败时,也可以执行告警指示。2、本专利技术所述的业务数据异步存储的系统,可以实现缓存业务数据并启用多个业务数据处理线程,还可以执行告警指示。3、本专利技术所述的业务数据异步存储的介质,可以实现建立关键段与业务数据处理线程的映射关系。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例1所述的业务数据异步存储的方法的示意图;图2是本专利技术实施例2所述的业务数据异步存储的系统的拓扑图。具体实施方式下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。CPU(CentralProcessingUnit)是中央处理器。实施例1本专利技术提供一种业务数据异步存储的方法,请参阅图1,包括以下步骤:S100、启用业务数据处理线程;步骤S100具体包括运行系统业务,将系统业务生成的业务数据缓存至Redis缓存队列,并启用若干业务数据处理线程:因为运行的所有系统业务都在CPU上,所以在CPU根据系统业务生成业务数据并缓存至Redis缓存队列之前,Redis缓存队列使用CAS将业务数据分为若干关键段,例如业务数据为本文档来自技高网...

【技术保护点】
1.一种业务数据异步存储的方法,其特征在于,包括以下步骤:/n启用业务数据处理线程:运行系统业务,将系统业务生成的业务数据缓存至Redis缓存队列,并启用若干业务数据处理线程;/n线程锁获取:所述业务数据处理线程获取线程锁的携带权;/n业务数据获取:获取到所述线程锁的携带权的所述业务数据处理线程将所述业务数据发送至数据库;/n业务数据保存:将所述业务数据保存至所述数据库,并根据保存结果执行数据校正操作或业务数据移除操作。/n

【技术特征摘要】
1.一种业务数据异步存储的方法,其特征在于,包括以下步骤:
启用业务数据处理线程:运行系统业务,将系统业务生成的业务数据缓存至Redis缓存队列,并启用若干业务数据处理线程;
线程锁获取:所述业务数据处理线程获取线程锁的携带权;
业务数据获取:获取到所述线程锁的携带权的所述业务数据处理线程将所述业务数据发送至数据库;
业务数据保存:将所述业务数据保存至所述数据库,并根据保存结果执行数据校正操作或业务数据移除操作。


2.根据权利要求1所述的业务数据异步存储的方法,其特征在于:所述启用业务数据处理线程步骤具体包括:
所述Redis缓存队列将所述业务数据分为若干关键段;
所述关键段运行于根据所述系统业务生成所述业务数据CPU中。


3.根据权利要求2所述的业务数据异步存储的方法,其特征在于:所述线程锁获取步骤进一步包括:
所述业务数据处理线程确定所述CPU内的所述关键段;
根据所述CPU的同步原语,控制所述线程锁锁定所述关键段;
所述业务数据处理线程获取所述线程锁的携带权。


4.根据权利要求3所述的业务数据异步存储的方法,其特征在于:
将获取到所述线程锁的携带权的所述业务数据处理线程命名为高级线程;
所述高级线程与所述关键段建立映射关系;
所述高级线程根据映射关系获取所述关键段;
根据获取结果执行所述业务数据保存步骤或所述线程锁获取步骤。


5.根据权利要求4所述的业务数据异步存储的方法,其特征在于:所述根据获取结果执行关键段运行操作或所述线程锁获取步骤进一步包括:
若所述高级线程根据所述映射关系读取到所述关键段,则执行业务数据保存步骤;
若所述高级线程根据所述映射关系未读取到所述关键段,则所述高级线程释放所述线程锁,发出第一告警指示,并回到所述线程锁获取步骤。


6.根据权利要求5所述的业务数据...

【专利技术属性】
技术研发人员:曹翠
申请(专利权)人:苏州玩蜂软件科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1