账户限额的控制方法、装置、处理器及电子设备与流程

文档序号:40633735发布日期:2025-01-10 18:39阅读:6来源:国知局
账户限额的控制方法、装置、处理器及电子设备与流程

本技术涉及云计算领域,具体而言,涉及一种账户限额的控制方法、装置、处理器及电子设备。


背景技术:

1、现有技术中金融机构一般通过三种方式控制客户的账户额度:第一,基于luna脚本和redis分布式锁控制客户的账户额度,但在使用分布式锁时,可能由于锁失效或锁冲突导致锁失效(例如,交易请求长时间阻塞在客户端中导致锁失效、redis服务器时钟漂移或单个节点损坏导致两个节点持有同一把锁等情况),进而造成客户的账户额度无法及时更新的问题;第二,将一个交易频繁的客户账户拆分为多个影子账户,将该账户的余额拆分到各个影子账户中,每次交易请求由hash选择合适的影子账户进行交易,但这种方法会由于单个影子账户中的金额较低使得交易请求无法完成,出现扣款不成功的情况,进而影响客户的正常交易;第三,将接收到的交易请求存放到消息队列中,每隔一段时间批量执行消息队列中的交易请求,并批量插入账户的全部明细数据,但在接收到大量交易请求的时候,会由于消息队列中堆积大量的交易请求,无法及时处理消息队列中的交易请求,导致账户限额的时效性较差的问题。

2、针对相关技术中通过分布式锁处理客户的交易请求时,由于网络波动或节点故障使分布式锁失效,无法及时更新客户的账户限额,导致账户限额的时效性较差的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本技术的主要目的在于提供一种账户限额的控制方法、装置、处理器及电子设备,以解决相关技术中通过分布式锁处理客户的交易请求时,由于网络波动或节点故障使分布式锁失效,无法及时更新客户的账户限额,导致账户限额的时效性较差的问题。

2、为了实现上述目的,根据本技术的一个方面,提供了一种账户限额的控制方法,该方法包括:在接收到交易请求的情况下,确定所述交易请求中的交易金额是否超过目标账户的限额数值,其中,所述目标账户是指所述交易请求中的交易账户,所述限额数值表示所述目标账户的交易金额上限;在所述交易金额未超过所述限额数值的情况下,依据所述交易请求生成所述目标账户的限额变更信息,其中,所述限额变更信息是指所述目标账户的账户交易限额的变更信息;将所述限额变更信息发送至服务端节点,其中,所述服务端节点依据所述限额变更信息执行所述交易请求,得到所述交易请求的执行结果;接收所述服务端节点返回的执行结果,在所述执行结果指示所述交易请求执行成功的情况下,依据所述执行结果更新所述目标账户的限额信息。

3、进一步地,在确定所述交易请求中的交易金额是否超过目标账户的限额数值之前,所述方法还包括:确定限额规则,其中,所述限额规则是指金融机构对账户交易的交易金额所设定的上限;确定所述金融机构中账户的历史限额变更信息,并将所述历史限额变更信息存储至etcd集群中,其中,所述历史限额变更信息表示所述金融机构中账户历史交易中的限额数值的变更信息。

4、进一步地,确定所述交易请求中的交易金额是否超过目标账户的限额数值包括:确定所述交易请求中的交易金额;在所述etcd集群中获取所述目标账户的限额变更信息;依据所述目标账户的历史限额变更信息、所述限额规则和所述交易金额确定所述交易请求中的交易金额是否超过目标账户的限额数值。

5、进一步地,将所述限额变更信息发送至服务端节点,其中,所述服务端节点依据所述限额变更信息执行所述交易请求,得到所述交易请求的执行结果包括:在所述限额规则中,确定所述交易请求对应的目标限额规则;基于netty长连接将所述目标限额规则发送至所述服务端节点,其中,所述服务端节点依据所述目标限额规则执行所述交易请求,得到所述交易请求的执行结果。

6、进一步地,在基于netty长连接将所述目标限额规则发送至所述服务端节点之前,所述方法还包括:将所述服务端节点的节点状态发送至所述etcd集群中;基于netty长连接将所述目标限额规则发送至所述服务端节点包括:依据所述etcd集群中存储的所述节点状态,在所述服务端节点中确定目标服务端节点;通过哈希算法将所述目标限额规则发送至所述目标服务端节点中。

7、进一步地,所述服务端节点依据所述目标限额规则执行所述交易请求,得到所述交易请求的执行结果包括:将所述限额变更信息发送到消息队列中;依据所述目标限额规则,所述目标服务端节点依次判断所述消息队列中所述限额变更信息的限额数值是否超过所述目标账户的限额数值;若所述限额变更信息的限额数值超过所述目标账户的限额数值,则确定所述限额变更信息对应的交易请求执行失败;若所述限额变更信息的限额数值未超过所述目标账户的限额数值,则所述目标服务端节点依据所述限额变更信息更新所述目标账户的限额数值,并确定所述限额变更信息对应的交易请求执行成功。

8、进一步地,接收所述服务端节点返回的执行结果,在所述执行结果指示所述交易请求执行成功的情况下,依据所述执行结果更新所述目标账户的限额信息包括:通过所述netty长连接接收所述服务端节点返回的执行结果;依据所述执行结果确定所述目标账户更新后的限额信息。

9、进一步地,在所述目标服务端节点依据所述限额变更信息更新所述目标账户的限额数值,并确定所述限额变更信息对应的交易请求执行成功之后,所述方法还包括:每经过预设时长,控制所述目标服务端节点将所述目标账户更新后的限额信息发送至所述etcd集群中,以更新所述etcd集群中的所述目标账户的限额变更信息。

10、进一步地,在依据所述执行结果确定所述目标账户更新后的限额信息之后,所述方法还包括:在接收到所述目标账户的其它交易请求的情况下,依据所述其它交易请求、所述目标账户更新后的限额信息和所述限额规则确定所述其它交易请求中的交易金额是否超过所述目标账户当前的限额数值。

11、为了实现上述目的,根据本技术的另一方面,提供了一种账户限额的控制装置,该装置包括:第一确定单元,用于在接收到交易请求的情况下,确定所述交易请求中的交易金额是否超过目标账户的限额数值,其中,所述目标账户是指所述交易请求中的交易账户,所述限额数值表示所述目标账户的交易金额上限;生成单元,用于在所述交易金额未超过所述限额数值的情况下,依据所述交易请求生成所述目标账户的限额变更信息,其中,所述限额变更信息是指所述目标账户的账户交易限额的变更信息;发送单元,用于将所述限额变更信息发送至服务端节点,其中,所述服务端节点依据所述限额变更信息执行所述交易请求,得到所述交易请求的执行结果;更新单元,用于接收所述服务端节点返回的执行结果,在所述执行结果指示所述交易请求执行成功的情况下,依据所述执行结果更新所述目标账户的限额信息。

12、进一步地,所述装置还包括:第二确定单元,用于在确定所述交易请求中的交易金额是否超过目标账户的限额数值之前,确定限额规则,其中,所述限额规则是指金融机构对账户交易的交易金额所设定的上限;第三确定单元,用于确定所述金融机构中账户的历史限额变更信息,并将所述历史限额变更信息存储至etcd集群中,其中,所述历史限额变更信息表示所述金融机构中账户历史交易中的限额数值的变更信息。

13、进一步地,所述第一确定单元包括:第一确定子单元,用于确定所述交易请求中的交易金额;获取子单元,用于在所述etcd集群中获取所述目标账户的限额变更信息;第二确定子单元,用于依据所述目标账户的历史限额变更信息、所述限额规则和所述交易金额确定所述交易请求中的交易金额是否超过目标账户的限额数值。

14、进一步地,所述发送单元包括:第三确定子单元,用于在所述限额规则中,确定所述交易请求对应的目标限额规则;第一发送子单元,用于基于netty长连接将所述目标限额规则发送至所述服务端节点,其中,所述服务端节点依据所述目标限额规则执行所述交易请求,得到所述交易请求的执行结果。

15、进一步地,所述发送单元还包括:第二发送子单元,用于在基于netty长连接将所述目标限额规则发送至所述服务端节点之前,将所述服务端节点的节点状态发送至所述etcd集群中;所述第一发送子单元包括:第一确定模块,用于依据所述etcd集群中存储的所述节点状态,在所述服务端节点中确定目标服务端节点;第一发送模块,用于通过哈希算法将所述目标限额规则发送至所述目标服务端节点中。

16、进一步地,所述第一发送子单元包括:第二发送模块,用于将所述限额变更信息发送到消息队列中;判断模块,用于依据所述目标限额规则,所述目标服务端节点依次判断所述消息队列中所述限额变更信息的限额数值是否超过所述目标账户的限额数值;第二确定模块,用于若所述限额变更信息的限额数值超过所述目标账户的限额数值,则确定所述限额变更信息对应的交易请求执行失败;更新模块,用于若所述限额变更信息的限额数值未超过所述目标账户的限额数值,则所述目标服务端节点依据所述限额变更信息更新所述目标账户的限额数值,并确定所述限额变更信息对应的交易请求执行成功。

17、进一步地,所述更新单元包括:接收子单元,用于通过所述netty长连接接收所述服务端节点返回的执行结果;第四确定子单元,用于依据所述执行结果确定所述目标账户更新后的限额信息。

18、进一步地,所述第一发送子单元还包括:第三发送模块,用于在所述目标服务端节点依据所述限额变更信息更新所述目标账户的限额数值,并确定所述限额变更信息对应的交易请求执行成功之后,每经过预设时长,控制所述目标服务端节点将所述目标账户更新后的限额信息发送至所述etcd集群中,以更新所述etcd集群中的所述目标账户的限额变更信息。

19、进一步地,所述更新单元还包括:第五确定子单元,用于在依据所述执行结果确定所述目标账户更新后的限额信息之后,在接收到所述目标账户的其它交易请求的情况下,依据所述其它交易请求、所述目标账户更新后的限额信息和所述限额规则确定所述其它交易请求中的交易金额是否超过所述目标账户当前的限额数值。

20、为了实现上述目的,根据本技术的一个方面,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项所述账户限额的控制方法。

21、为了实现上述目的,根据本技术的一个方面,提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项所述账户限额的控制方法。

22、通过本技术,采用以下步骤:在接收到交易请求的情况下,确定所述交易请求中的交易金额是否超过目标账户的限额数值,其中,所述目标账户是指所述交易请求中的交易账户,所述限额数值表示所述目标账户的交易金额上限;在所述交易金额未超过所述限额数值的情况下,依据所述交易请求生成所述目标账户的限额变更信息,其中,所述限额变更信息是指所述目标账户的账户交易限额的变更信息;将所述限额变更信息发送至服务端节点,其中,所述服务端节点依据所述限额变更信息执行所述交易请求,得到所述交易请求的执行结果;接收所述服务端节点返回的执行结果,在所述执行结果指示所述交易请求执行成功的情况下,依据所述执行结果更新所述目标账户的限额信息,解决了相关技术中通过分布式锁处理客户的交易请求时,由于网络波动或节点故障使分布式锁失效,无法及时更新客户的账户限额,导致账户限额的时效性较差的问题。通过在服务端节点执行交易请求之前,由客户端节点对交易请求进行判断,筛选交易金额未超过目标账户的限额数值的交易请求,减少了服务端节点需要处理的交易请求的数量,避免了交易请求堆积导致账户限额的时效性较差的问题,并且通过生成目标账户限额数值变更时的增量信息(即上述的限额变更信息),使得服务端节点仅需处理增量数据不需要处理目标账户的全量数据,降低了服务端节点的计算压力,达到了提高服务端节点处理交易请求的效率的效果,进一步达到了提高账户限额的时效性的效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1