一种热点账号交易处理方法、装置、电子设备及存储介质

文档序号:1939033 发布日期:2021-12-07 浏览:15次 >En<

阅读说明:本技术 一种热点账号交易处理方法、装置、电子设备及存储介质 (Hotspot account transaction processing method and device, electronic device and storage medium ) 是由 黎丙成 于 2021-09-08 设计创作,主要内容包括:本发明公开了一种热点账号交易处理方法、装置、电子设备及存储介质,所述方法包括:确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列;从数据库中查询所述热点账号的当前余额;对所述高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额;根据所述热点账号的当前余额和所述交易总金额确定所述热点账号的最新余额;将所述热点账号的最新余额更新到所述数据库中。本发明实施例通过对所有交易请求携带的交易金额进行金额汇总,实现了一次查询数据库和一次更新数据库便能够实现对所有交易请求的交易处理。提高了高频交易处理的效率。(The invention discloses a hotspot account transaction processing method, a hotspot account transaction processing device, electronic equipment and a storage medium, wherein the method comprises the following steps: determining a hot account number, and adding all transaction requests of the hot account number into a corresponding high-frequency temporary queue; inquiring the current balance of the hotspot account from a database; summarizing the transaction amounts carried by all transaction requests in the high-frequency temporary queue to obtain a total transaction amount; determining the latest balance of the hotspot account according to the current balance of the hotspot account and the transaction total amount; and updating the latest balance of the hotspot account into the database. According to the embodiment of the invention, the transaction amounts carried by all transaction requests are summarized, so that the transaction processing of all transaction requests can be realized by inquiring the database once and updating the database once. The efficiency of high frequency transaction processing is improved.)

一种热点账号交易处理方法、装置、电子设备及存储介质

技术领域

本发明涉及数据处理技术领域,尤其涉及一种热点账号交易处理方法、装置、电子设备及存储介质。

背景技术

在虚拟货币的应用中往往会出现一些对同一个账号的高频次的交易请求,比如在娱乐直播中粉丝不停对主播发起连击送礼,体现在货币账户上就是不停地对粉丝账号进行扣款和对主播账号进行入账。高频次交易的账号称为热点账号。

相关技术中,每次接收到交易请求之后,都需要从数据库中查询当前余额,然后根据交易请求携带的交易金额和当前余额确定新的余额,再将新的余额更新到数据库中。从数据库中查询当前余额以及将的余额更新到数据库中的过程比较耗时,因此热点账号的高频交易处理效率较低,容易出现堆积超时情况,甚至影响到其他账户的交易。

发明内容

本发明实施例提供了一种热点账号交易处理方法、装置、电子设备及存储介质,用以解决现有的热点账号的高频交易处理效率较低的问题。

本发明实施例提供了一种热点账号交易处理方法,所述方法包括:

确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列;

从数据库中查询所述热点账号的当前余额;对所述高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额;根据所述热点账号的当前余额和所述交易总金额确定所述热点账号的最新余额;

将所述热点账号的最新余额更新到所述数据库中。

另一方面,本发明实施例提供了一种热点账号交易处理装置,所述装置包括:

第一确定模块,用于确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列;

第二确定模块,用于从数据库中查询所述热点账号的当前余额;对所述高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额;根据所述热点账号的当前余额和所述交易总金额确定所述热点账号的最新余额;

更新模块,用于将所述热点账号的最新余额更新到所述数据库中。

另一方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一项所述的方法步骤。

另一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法步骤。

本发明实施例提供了一种热点账号交易处理方法、装置、电子设备及存储介质,所述方法包括:确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列;从数据库中查询所述热点账号的当前余额;对所述高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额;根据所述热点账号的当前余额和所述交易总金额确定所述热点账号的最新余额;将所述热点账号的最新余额更新到所述数据库中。

由于在本发明实施例中,将热点账号的所有交易请求加入对应的高频临时队列,在进行交易处理时,对高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额。从数据库中查询热点账号的当前余额之后,根据热点账号的当前余额和交易总金额确定热点账号的最新余额并更新到数据库中。热点账号的交易请求数量很多,本发明实施例通过对所有交易请求携带的交易金额进行金额汇总,实现了一次查询数据库和一次更新数据库便能够实现对所有交易请求的交易处理。提高了高频交易处理的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1提供的热点账号交易处理过程示意图;

图2为本发明实施例3提供的热点账号交易处理详细流程图;

图3为本发明实施例3提供的热点账号交易处理原理框架图;

图4为本发明实施例3提供的高频临时队列处理流程图;

图5为本发明实施例4提供的热点账号交易处理装置结构示意图;

图6为本发明实施例5提供的电子设备结构示意图。

具体实施方式

下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

实施例1:

图1为本发明实施例提供的热点账号交易处理过程示意图,包括以下步骤:

S101:确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列。

S102:从数据库中查询所述热点账号的当前余额;对所述高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额;根据所述热点账号的当前余额和所述交易总金额确定所述热点账号的最新余额。

S103:将所述热点账号的最新余额更新到所述数据库中。

本发明实施例提供的热点账号交易处理方法应用于电子设备,该电子设备可以是PC、平板电脑、智能手机等设备。本发明实施例中涉及到的名次解释如下:

QPS:每秒交易请求次数,用于度量交易频率。

UID:用户识别代码,本文档特指账户ID。

高频交易:以很高的频率进行交易,这里指以很高频率对账户的余额进行操作。

热点账号:具有高频交易特征的账号。

Hash路由:通过对请求中UID进行Hash映射后对请求进行分流,对某一UID的请求始终会被分流到同一个处理节点。

Hash分片:将请求进行Hash路由分配到固定数量的处理节点(这里指线程),每一个处理节点就是一个Hash分片。

账户交易:指对账户余额的扣款或入账操作。

交易合并:对同一个账户短时间内连续的一批交易请求进行合并统一汇总处理。

本发明实施例中,通过Hash路由将不同的账号映射到处理节点。例如,处理节点A处理账号1、账号2和账号3的交易请求,处理节点B处理账号4、账号5和账号6的交易请求等。

针对每个处理节点,确定出该处理节点中的热点账号。在确定热点账号时,可以针对每个账号,统计该账号的QPS,判断该账户的QPS是否大于预设的阈值,如果是,则确定该账户为热点账号,否则确定该账户为非热点账号。

本发明实施例在进行热点账号交易处理时可以按照预设的周期进行,例如每隔1秒或者2秒进行热点账号交易处理,也可以是实时进行热点账号交易处理。电子设备进行热点账号交易处理时,为每个热点账号建立一个对应的高频临时队列,将热点账号的所有交易请求加入对应的高频临时队列。然后对高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额。通过从数据库中查询,获取热点账号当前余额,然后根据热点账号的当前余额和交易总金额确定热点账号的最新余额。最后将热点账号的最新余额更新到所述数据库中。

其中,根据热点账号的当前余额和交易总金额确定热点账号的最新余额的过程为,如果是扣款交易,则将当前余额减去交易总金额,得到最新余额。如果是入账交易,则将当前余额加上交易总金额,得到最新余额。交易请求中携带有交易金额是入账还是扣款的信息。

由于在本发明实施例中,将热点账号的所有交易请求加入对应的高频临时队列,在进行交易处理时,对高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额。从数据库中查询热点账号的当前余额之后,根据热点账号的当前余额和交易总金额确定热点账号的最新余额并更新到数据库中。热点账号的交易请求数量很多,本发明实施例通过对所有交易请求携带的交易金额进行金额汇总,实现了一次查询数据库和一次更新数据库便能够实现对所有交易请求的交易处理。提高了高频交易处理的效率。

实施例2:

当处理节点的交易请求处理任务较少时,即使是热点账号进行高频交易,不对热点账号的交易请求携带的交易金额进行金额汇总,因为处理节点的计算资源充足,因此也能够保证高频交易处理的效率。基于此考虑,在上述实施例的基础上,在本发明实施例中,所述确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列之前,所述方法还包括:

统计处理节点设定第一时间长度内处理的交易数量,根据所述交易数量和所述处理节点设定第一时间长度内最大能力处理交易数量,确定所述处理节点为繁忙状态还是空闲状态;若所述处理节点为繁忙状态,确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列。

本发明实施例中,统计处理节点设定第一时间长度内处理的交易数量,其中,设定第一时间长度可以是1秒、2秒等。获取处理节点设定第一时间长度内最大能力处理交易数量。根据处理节点设定第一时间长度内处理的交易数量与处理节点设定第一时间长度内最大能力处理交易数量的比值,确定处理节点为繁忙状态还是空闲状态。例如当比值超过一定阈值时,确定处理节点为繁忙状态,小于一定阈值时,确定处理节点为空闲状态。较佳的,为了避免处理节点频繁在繁忙状态和空闲状态之间切换,确定处理节点为繁忙状态还是空闲状态的过程为:处理节点在处理交易请求之前,初始化处理节点为空闲状态。在处理交易请求过程中,确定处理节点设定第一时间长度内处理的交易数量与处理节点设定第一时间长度内最大能力处理交易数量的比值,当比值大于预设的第一阈值时,确定处理节点由空闲状态切换为繁忙状态,预设的第一阈值例如是0.8、085等。如果当前为繁忙状态,当比值小于预设的第二阈值时,确定处理节点由繁忙状态切换为空闲状态,预设的第二阈值例如是0.5、025等。需要说明的是,如果当前为空闲状态,比值不大于预设的第一阈值时,都保持当前的空闲状态。如果当前为繁忙状态,比值不小于预设的第二阈值时,都保持当前的繁忙状态。

如果确定处理节点为繁忙状态,则进行确定热点账号,将热点账号的所有交易请求加入对应的高频临时队列的步骤。

本发明实施例中,所述方法还包括:

若所述处理节点为繁忙状态,确定非热点账号,将所述非热点账号的交易请求加入主队列;或若所述处理节点为空闲状态,不进行热点账号或非热点账号的判断,将账号的交易请求加入主队列;

针对所述主队列中的交易请求,从数据库中查询该交易请求对应的账号的当前余额,根据该交易请求对应的账号的当前余额和所述主队列中的该交易请求携带的交易金额确定该交易请求对应的账号的最新余额;将所述该交易请求对应的账号的最新余额更新到所述数据库中。

因为处理节点处于空闲状态时,处理节点的计算资源充足,即使是热点账号进行高频交易,不对热点账号的交易请求携带的交易金额进行金额汇总,也能够保证高频交易处理的效率。因此,本发明实施例中,若处理节点为空闲状态,不进行热点账号或非热点账号的判断,将所有账号的交易请求加入主队列。处理节点处于繁忙状态时,确定非热点账号,因为非热点账号的交易请求次数较少,因此将非热点账号的交易请求也加入主队列。

对主队列中的交易请求的处理过程为,针对主队列中的交易请求,从数据库中查询该交易请求对应的账号的当前余额。其中,交易请求中携带有交易金额、交易为入账还是扣款的信息以及交易的账号标识信息。因此,针对主队列中的每个交易请求,可以该交易请求对应的账号。然后从数据库中查询该交易请求对应的账号的当前余额。根据该交易请求对应的账号的当前余额和主队列中的该交易请求携带的交易金额确定该交易请求对应的账号的最新余额。

如果是扣款交易,则将当前余额减去交易金额,得到最新余额。如果是入账交易,则将当前余额加上交易金额,得到最新余额。将该交易请求对应的账号的最新余额更新到所述数据库中。

需要说明的是,对于某一账号,当处理节点为繁忙状态,确定该账号为热点账号时,若主队列中存在该账号的交易请求,则需要将主队列中该账号的交易请求一并迁移到对应的高频临时队列中。

由于在本发明实施例中,若处理节点为繁忙状态,确定非热点账号,将非热点账号的交易请求加入主队列;或若处理节点为空闲状态,不进行热点账号或非热点账号的判断,将账号的交易请求加入主队列。若处理节点为繁忙状态,确定热点账号,将热点账号的交易请求加入对应的高频临时队列。即提高了高频交易处理的效率。也在不需要添加高频临时队列时,避免了电子设备创建高频临时队列带来的功耗。

实施例3:

为了提高确定热点账号的效率,在上述各实施例的基础上,在本发明实施例中,所述若所述处理节点为繁忙状态,确定热点账号包括:

若所述处理节点为繁忙状态,针对每个账号,判断该账号是否存在于热点账号白名单中,如果是,确定该账号为热点账号,如果否,统计该账号在设定第二时间长度内的交易请求数量,若该账号在设定第二时间长度内的交易请求数量超过预设的数量阈值,确定该账号为热点账号。

电子设备中保存有热点账号白名单,若处理节点为繁忙状态,则直接将热点账号白名单中的账号确定为热点账号。对于不存在于热点账号白名单中的账号,则统计该账号在设定第二时间长度内的交易请求数量,若该账号在设定第二时间长度内的交易请求数量超过预设的数量阈值,确定该账号为热点账号。设定第二时间长度可以是1秒、2秒等。

为了便于下次进行交易处理时快速确定热点账号,述针对每个账号,若该账号不存在于热点账号白名单中,并确定该账号为热点账号,所述方法还包括:

将该账号添加至所述热点账号白名单中。

所述方法还包括:

若所述处理节点由繁忙状态变为空闲状态,将所有高频临时队列中的交易请求迁移至主队列中。

为了避免误将非热点账号确认为热点账号,在本发明实施例中,所述方法还包括:

若所述处理节点由繁忙状态变为空闲状态,移除热点账号白名单中的热点账号。

图2为本发明实施例提供的热点账号交易处理详细流程图,如图2所示,首先判断处理节点(分片)处于繁忙状态还是空闲状态。如果是空闲状态,则将交易请求加入主队列,进行分片QPS统计,流程结束。如果是繁忙状态,判断账号UID是否在热点账号白名单中,如果在热点账号白名单中,则将该账号确定为热点账号,将该账号的交易请求添加到高频临时队列。如果未在热点账号白名单中,则统计账号的QPS,并判断QPS是否超过阈值,如果未超过阈值,则确定该账号为非热点账号,将该账号的交易请求写入主队列。如果超过阈值,则确定该账号为热点账号,将该账号的交易请求添加到高频临时队列。然后进行UID QPS统计和分片QPS统计,根据统计结果判断分片是否恢复为空闲状态,如果未恢复为空闲状态,流程结束。如果恢复为空闲状态,则迁移所有高频临时队列中的交易请求到主队列中。并清理热点账号白名单,流程结束。

下面结合框架图对本发明实施例提供的热点账号交易处理过程进行说明。

图3为本发明实施例提供的热点账号交易处理原理框架图。图3中,Hash路由:通过对请求中UID进行Hash映射后对请求进行分流,对某一UID的请求始终会被分流到同一个处理节点。Hash分片:将请求进行Hash路由分配到固定数量的处理节点(这里指线程),每一个处理节点就是一个Hash分片。

流量监控模块:负责统计当前hash分片的流量,监控当前hash分片是否出现热点账号,当识别出热点账号时自动将其交易请求转移到高频临时队列,具体工作原理如下:

1.接收本hash分片的账号交易请求进行QPS统计;

2.判断当前分片是否处于繁忙状态(QPS大于单线程每秒最大处理能力*80%,则确定处于繁忙状态,否则当前处于空闲状态);

3.当前分片在空闲状态时直接将请求写入主队列;

4.当前分片在繁忙状态时,当前请求的UID如果已加入到热点账号白名单则直接将当前交易写入到对应的高频临时队列,若尚未在热点账号白名单则对每笔请求进行UID维度的QPS统计,并判断UID当前的QPS是否已超出阈值,超出时需要创建新的高频临时队列同时将UID添加到热点账号白名单,并将主队列中所有该UID的请求迁移到新临时队列,最后把当前请求也写入到新临时队列。

5.由繁忙状态恢复到空闲状态(QPS小于单线程每秒最大处理能力*50%)时需要迁移所有临时队列请求到主队列,并清除高频白名单,UID维度的QPS不再统计。

主队列:用于存储非高频的账户交易请求。

主队列处理线程:从主队列获取交易请求进行账户操作,主要包括如下四个步骤:

1.从数据库查询UID当前的余额;

2.根据交易方向和金额计算出操作后的新余额:

扣款交易:新余额=当前余额–交易金额;

需要说明的是,新余额小于0时需要返回业务余额不足的提示信息;

入账交易:新余额=当前余额–交易金额;

3.记录余额变更流水到数据库;

4.将UID的新余额更新到数据库。

高频临时队列:用于存储高频的账户交易请求,每个队列只存储同一个UID的请求,队列由流量监控模块自动创建和分流。

高频临时线程:从高频临时队列批量取出请求进行合并进行账户操作,组要步骤如下:

1.循环每个非空的高频临时队列,批量取出全部请求做下面的处理;

2.从数据库查询UID当前的余额;

3.对每一笔请求生成一条余额变更流水写入到数据库;

4.将所有请求进行金额汇总,根据当前余额计算出新余额更新到数据库。

图4为本发明实施例提供的高频临时队列处理流程图,首先获取一个非空闲的高频临时队列,如果没有非空闲的高频临时队列,则流程结束。获取一个非空闲的高频临时队列之后,批量取出所有请求,查询UID当前余额,根据每个请求生成一条余额变更流水写入数据库,汇总所有请求金额,计算出新余额更新到数据库,当前队列处理结束。

本发明实施例提供的方案,账户系统能高效地处理热点账号的高频交易,大大提高了系统吞吐率,减少了因系统原因导致的营收损失。热点账号动态识别:通过对请求进行Hash分片,在分片内进行负载检查后再进行热点账号识别,大大降低了识别工作给系统带来的开销。热点账号请求分流:识别出热点账号后通过单独创建临时队列来处理热点账号的请求,并对热点账号请求进行合并处理来大幅提高系统吞吐率。

实施例4:

图5为本发明实施例提供的热点账号交易处理装置结构示意图,该装置包括:

第一确定模块51,用于确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列;

第二确定模块52,用于从数据库中查询所述热点账号的当前余额;对所述高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额;根据所述热点账号的当前余额和所述交易总金额确定所述热点账号的最新余额;

更新模块53,用于将所述热点账号的最新余额更新到所述数据库中。

所述装置还包括:

第三确定模块54,用于统计处理节点设定第一时间长度内处理的交易数量,根据所述交易数量和所述处理节点设定第一时间长度内最大能力处理交易数量,确定所述处理节点为繁忙状态还是空闲状态;若所述处理节点为繁忙状态,确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列。

所述装置还包括:

第四确定模块55,用于若所述处理节点为繁忙状态,确定非热点账号,将所述非热点账号的交易请求加入主队列;或若所述处理节点为空闲状态,不进行热点账号或非热点账号的判断,将账号的交易请求加入主队列;针对所述主队列中的交易请求,从数据库中查询该交易请求对应的账号的当前余额,根据该交易请求对应的账号的当前余额和所述主队列中的该交易请求携带的交易金额确定该交易请求对应的账号的最新余额;将所述该交易请求对应的账号的最新余额更新到所述数据库中。

所述第三确定模块54,具体用于若所述处理节点为繁忙状态,针对每个账号,判断该账号是否存在于热点账号白名单中,如果是,确定该账号为热点账号,如果否,统计该账号在设定第二时间长度内的交易请求数量,若该账号在设定第二时间长度内的交易请求数量超过预设的数量阈值,确定该账号为热点账号。

所述装置还包括:

添加模块56,用于若该账号不存在于热点账号白名单中,并确定该账号为热点账号,将该账号添加至所述热点账号白名单中。

所述装置还包括:

迁移模块57,用于若所述处理节点由繁忙状态变为空闲状态,将所有高频临时队列中的交易请求迁移至主队列中。

所述装置还包括:

移除模块58,用于若所述处理节点由繁忙状态变为空闲状态,移除热点账号白名单中的热点账号。

实施例5:

在上述各实施例的基础上,本发明实施例中还提供了一种电子设备,如图6所示,包括:处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信;

所述存储器303中存储有计算机程序,当所述程序被所述处理器301执行时,使得所述处理器301执行如下步骤:

确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列;

从数据库中查询所述热点账号的当前余额;对所述高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额;根据所述热点账号的当前余额和所述交易总金额确定所述热点账号的最新余额;

将所述热点账号的最新余额更新到所述数据库中。

本发明实施例提供的一种电子设备可用于执行上述任意实施例提供的热点账号交易处理方法,具备相应的功能和有益效果。

实施例6:

在上述各实施例的基础上,本发明实施例还提供了一种计算机存储可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:

确定热点账号,将所述热点账号的所有交易请求加入对应的高频临时队列;

从数据库中查询所述热点账号的当前余额;对所述高频临时队列中的所有交易请求携带的交易金额进行金额汇总,得到交易总金额;根据所述热点账号的当前余额和所述交易总金额确定所述热点账号的最新余额;

将所述热点账号的最新余额更新到所述数据库中。

本发明实施例还提供的计算机存储可读存储介质,内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,可用于执行上述任意实施例提供的热点账号交易处理方法,具备相应的功能和有益效果。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种交易的处理方法、装置、设备和机器可读介质

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!