基于实时交易的热点熔断方法、装置、设备及存储介质与流程

摘要: 本技术涉及交易数据处理,尤其涉及基于实时交易的热点熔断方法、装置、设备及存储介质。背景技术:1、随着金融交易业务的快速发展,证券交易、期货交易及支付清算等系统的...
基于实时交易的热点熔断方法、装置、设备及存储介质与流程

本技术涉及交易数据处理,尤其涉及基于实时交易的热点熔断方法、装置、设备及存储介质。

背景技术:

1、随着金融交易业务的快速发展,证券交易、期货交易及支付清算等系统的交易规模持续扩大,交易频率显著提升。在保障客户资金安全的前提下,市场对交易系统的处理能力和稳定性提出了更高要求,特别是在面对高频自动化交易时,系统需要具备对异常交易行为的识别与控制能力,以维护整体交易秩序和资金安全。

2、现有技术中,部分系统采用不做任何防护的方式,将压力直接集中在账户处理阶段,当客户发起恶意高频攻击时,易造成数据库锁等待及连接占用激增,进而影响其他正常客户的交易;部分方案以实例或数据库为单位进行管控,但该方式要求客户交易信息均匀分布,否则会出现过早限制客户的情况,且会绑定账务功能的性能瓶颈,当上游管控总量超过账务处理上限时仍无法避免系统风险;另有方案引入第三方限流服务或缓存数据库,该方式增加了系统架构复杂度和外部服务依赖,在第三方服务异常时会对使用方造成严重影响,且本质上是将恶意冲击转移至外部服务,使用方仍需考虑外部服务上限并进行额外改造。

3、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

1、本技术的主要目的在于提供一种基于实时交易的热点熔断方法、装置、设备及存储介质,旨在解决如何对交易系统中的高频异常交易进行实时控制的技术问题。

2、为实现上述目的,本技术提出一种基于实时交易的热点熔断方法,所述的基于实时交易的热点熔断方法包括:

3、响应交易请求,从所述交易请求中提取客户标识信息、交易类型以及交易发生时间;

4、根据所述客户标识信息和所述交易类型在内部缓存中查询或创建先入先出队列;

5、将所述交易发生时间添加到所述先入先出队列的尾部,并判断所述先入先出队列是否排满,得到队列状态信息;

6、在所述队列状态信息为排满状态时,计算所述先入先出队列的尾部时间与头部时间的时间差;

7、在所述时间差小于等于熔断时间时,发送熔断广播,以使全部实例基于所述熔断广播拒绝客户交易请求。

8、在一实施例中,所述根据所述客户标识信息和所述交易类型在内部缓存中查询或创建先入先出队列的步骤,包括:

9、根据所述客户标识信息和所述交易类型构建唯一标识;

10、在所述内部缓存中查询与所述唯一标识对应的先入先出队列;

11、在查询不到所述先入先出队列时,创建线程安全队列,所述线程安全队列的长度对应交易频率上限;

12、将所述线程安全队列作为所述先入先出队列存储于所述内部缓存中,得到先入先出队列。

13、在一实施例中,所述在所述时间差小于等于熔断时间时,发送熔断广播,以使全部实例基于所述熔断广播拒绝客户交易请求的步骤,包括:

14、在所述时间差小于等于所述熔断时间时,获取全部实例的实例信息;

15、根据所述实例信息向所述全部实例发送所述熔断广播,所述熔断广播包含所述客户标识信息、所述交易类型以及熔断开始时间;

16、控制所述全部实例接收所述熔断广播,并将熔断信息记录至所述内部缓存;

17、在后续接收到所述客户标识信息对应的客户交易请求时,控制所述全部实例基于所述熔断信息拒绝所述客户交易请求。

18、在一实施例中,所述在所述队列状态信息为排满状态时,计算所述先入先出队列的尾部时间与头部时间的时间差的步骤,包括:

19、在所述队列状态信息为排满状态时,获取所述先入先出队列的尾部时间和所述先入先出队列的头部时间;

20、将所述尾部时间与所述头部时间进行差值计算,得到初始时间差;

21、对所述初始时间差进行精度处理,得到时间差。

22、在一实施例中,所述将所述交易发生时间添加到所述先入先出队列的尾部,并判断所述先入先出队列是否排满,得到队列状态信息的步骤,包括:

23、将所述交易发生时间添加到所述先入先出队列的尾部;

24、获取所述先入先出队列的当前长度;

25、将所述当前长度与所述队列长度进行比较;

26、在所述当前长度等于所述队列长度时,确定所述先入先出队列排满,得到所述队列状态信息;

27、在所述当前长度小于所述队列长度时,确定所述先入先出队列未排满,得到所述队列状态信息。

28、在一实施例中,根据所述客户标识信息和所述交易类型在内部缓存中查询或创建先入先出队列的步骤之后,还包括:

29、遍历所述内部缓存中的所有先入先出队列,获取每个所述先入先出队列的尾部时间,所述尾部时间为最新一笔交易的发生时间;

30、计算当前时间与所述尾部时间的时间差,并判断所述时间差是否大于判断熔断时间;

31、在所述时间差大于所述判断熔断时间时,清除与所述先入先出队列对应的唯一标识及键值对。

32、在一实施例中,所述在所述时间差小于等于熔断时间时,发送熔断广播,以使全部实例基于所述熔断广播拒绝客户交易请求的步骤之后,还包括:

33、将所述客户标识信息对应的客户允许的交易频率上限由性能上限变更为手工操作理论上限;

34、在进入监控期时,根据所述客户标识信息和所述交易类型在所述内部缓存中查询所述先入先出队列;

35、在查询不到所述先入先出队列时,将所述交易频率上限恢复至所述性能上限;

36、在查询到所述先入先出队列时,维持所述交易频率上限为所述手工操作理论上限,并接收所述客户标识信息对应的客户的后续交易请求,将所述后续交易请求对应的交易发生时间添加至所述先入先出队列;

37、在所述先入先出队列排满且所述先入先出队列的尾部时间与头部时间的时间差小于等于熔断时间时,发送熔断广播以拒绝客户交易请求。

38、此外,为实现上述目的,本技术还提出一种基于实时交易的热点熔断装置,所述装置包括:

39、请求响应模块,用于响应交易请求,从所述交易请求中提取客户标识信息、交易类型以及交易发生时间;

40、队列维护模块,用于根据所述客户标识信息和所述交易类型在内部缓存中查询或创建先入先出队列;

41、时间累计模块,用于将所述交易发生时间添加到所述先入先出队列的尾部,并判断所述先入先出队列是否排满,得到队列状态信息;

42、时间差计算模块,用于在所述队列状态信息为排满状态时,计算所述先入先出队列的尾部时间与头部时间的时间差;

43、广播触发模块,用于在所述时间差小于等于熔断时间时,发送熔断广播,以使全部实例基于所述熔断广播拒绝客户交易请求。

44、此外,为实现上述目的,本技术还提出一种基于实时交易的热点熔断设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的基于实时交易的热点熔断方法的步骤。

45、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的基于实时交易的热点熔断方法的步骤。

46、此外,为实现上述目的,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的基于实时交易的热点熔断方法的步骤。

47、本技术提出的一个或多个技术方案,至少具有以下技术效果:

48、通过响应交易请求并提取客户标识信息、交易类型及交易发生时间,根据所述客户标识信息和所述交易类型在内部缓存中维护先入先出队列,将所述交易发生时间添加到所述队列尾部并在所述队列排满时计算头尾时间差,在所述时间差小于等于熔断时间时发送熔断广播以使全部实例拒绝客户交易请求,实现了在不引入外部依赖的前提下于交易系统内部对单客户高频异常交易进行实时熔断控制,防止恶意攻击行为导致账务系统性能下降,避免影响其他正常客户的交易,提高了交易系统的安全性和稳定性。