System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于金融交易场景的数据处理方法、介质及电子设备技术_技高网

一种用于金融交易场景的数据处理方法、介质及电子设备技术

技术编号:43124091 阅读:3 留言:0更新日期:2024-10-26 10:03
本发明专利技术公开了一种用于金融交易场景的数据处理方法、介质及电子设备,所述方法包括:初始化环形缓冲区;使用ThreadLocal进行线程本地存储;在生产者线程中,通过ThreadLocal获取线程本地事件对象;获取环形缓冲区下一个可用的序列号;将线程本地事件对象中的数据写入环形缓冲区中的事件对象;通过环形缓冲区发布事件,通知消费者有新的事件可处理;消费者线程从环形缓冲区中获取事件;使用线程本地的处理状态对象处理从环形缓冲区中获取交易数据;在处理交易数据后,更新线程本地的处理状态对象。本发明专利技术提供了一种高效、低延迟、线程安全的金融交易系统数据处理方法,满足了金融系统高并发、高吞吐量、低延迟的严格要求。

【技术实现步骤摘要】

本专利技术涉及金融交易领域,具体是一种用于金融交易场景的数据处理方法、介质及电子设备


技术介绍

1、在高并发数据处理场景中,如在线交易系统和实时数据分析,系统需要快速、高效地处理大量并发请求。目前在高频数据处理场景中,常见的实现方案有使用传统的阻塞队列(如arrayblockingqueue或linkedblockingqueue)结合线程池来进行数据生产和消费。

2、传统的队列和锁机制往往难以满足高性能要求,容易导致线程竞争和性能瓶颈。ringbuffer作为一种高效的缓冲区结构,可以提供高吞吐量和低延迟,而threadlocal可以为每个线程提供独立的变量存储,避免线程间的共享和竞争。


技术实现思路

1、鉴于上述问题,提出了本专利技术以便提供克服上述问题或者至少部分地解决上述问题的一种用于金融交易场景的数据处理方法、介质及电子设备。

2、为实现上述目的,在本申请的第一方面提供了一种用于金融交易场景的数据处理方法,所述方法包括:

3、初始化环形缓冲区;

4、使用threadlocal进行线程本地存储;

5、在生产者线程中,通过threadlocal获取线程本地事件对象,并将交易数据写入线程本地事件对象;

6、获取环形缓冲区下一个可用的序列号,通过获取的序列号,从环形缓冲区中获取对应的事件对象;

7、将线程本地事件对象中的数据写入环形缓冲区中的事件对象;

8、通过环形缓冲区发布事件,通知消费者有新的事件可处理;

9、消费者线程从环形缓冲区中获取事件,使用消费者线程的序列号来标识需要处理的事件,并通过threadlocal获取消费者线程本地的处理状态对象;

10、使用线程本地的处理状态对象处理从环形缓冲区中获取交易数据;

11、在处理交易数据后,更新线程本地的处理状态对象。

12、可选的,所述初始化环形缓冲区包括:

13、根据交易系统的预期并发量和数据处理需求选择缓冲区;

14、选择等待策略以平衡系统延迟和cpu使用率;

15、创建事件工厂,事件工厂用于创建环形缓冲区中的事件对象;

16、初始化disruptor框架,通过disruptor框架创建和管理环形缓冲区;

17、配置事件处理器,事件处理器用于处理从环形缓冲区中读取的事件。

18、可选的,,所述使用threadlocal进行线程本地存储包括:

19、确定需要threadlocal存储的对象;

20、创建threadlocal变量,为每个需要线程本地存储的对象创建threadlocal变量;

21、初始化threadlocal变量,在系统初始化过程中,为每个线程初始化threadlocal变量;

22、在线程中获取threadlocal对象,在处理交易数据时,通过threadlocal变量获取线程本地存储的对象;

23、在生产者线程中,将交易数据写入threadlocal存储的交易事件对象;

24、在消费者线程中,通过threadlocal变量获取处理状态对象。

25、可选的,所述存储的对象包括交易事件对象和处理状态对象,交易事件对象包括交易id和交易价格,处理状态对象包括交易处理的中间状态和交易处理的结果。

26、可选的,在处理交易数据后,还会根据处理结果来执行日志记录操作或者通知其他系统。

27、可选的,所述环形缓冲区通过compare-and-swap机制实现无锁的序列号获取和事件发布。

28、可选的,环形缓冲区支持多生产者和多消费者模式,通过同步机制,多个生产者可以同时发布事件,多个消费者可以同时处理事件。

29、可选的,通过无锁设计和预分配内存,事件对象在环形缓冲区中预先分配,以确保在高并发环境下数据的一致性和处理的准确性。

30、在本申请的第二方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,采用了第一方面中任一项所述的方法。

31、在本申请的第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器中并能够在处理器上运行的计算机程序,所述处理器加载并执行计算机程序时,采用了第一方面中任一项所述的方法。

32、综上所述,由于采用了上述技术方案,本专利技术的有益效果是:

33、本专利技术结合使用环形缓冲区和threadlocal,提供了一种高效、低延迟、线程安全的金融交易系统数据处理方法,显著提高了处理性能,满足了金融系统高并发、高吞吐量、低延迟的严格要求,具有广泛的应用前景和市场价值。

本文档来自技高网...

【技术保护点】

1.一种用于金融交易场景的数据处理方法,其特征在于,所述方法包括:

2.如权利要求1所述的一种用于金融交易场景的数据处理方法,其特征在于,所述初始化环形缓冲区包括:

3.如权利要求1所述的一种用于金融交易场景的数据处理方法,其特征在于,所述使用ThreadLocal进行线程本地存储包括:

4.如权利要求3所述的一种用于金融交易场景的数据处理方法,其特征在于,所述存储的对象包括交易事件对象和处理状态对象,交易事件对象包括交易ID和交易价格,处理状态对象包括交易处理的中间状态和交易处理的结果。

5.如权利要求1所述的一种用于金融交易场景的数据处理方法,其特征在于,在处理交易数据后,还会根据处理结果来执行日志记录操作或者通知其他系统。

6.如权利要求1所述的一种用于金融交易场景的数据处理方法,其特征在于,所述环形缓冲区通过Compare-And-Swap机制实现无锁的序列号获取和事件发布。

7.如权利要求1所述的一种用于金融交易场景的数据处理方法,其特征在于,环形缓冲区支持多生产者和多消费者模式,通过同步机制,多个生产者可以同时发布事件,多个消费者可以同时处理事件。

8.如权利要求1所述的一种用于金融交易场景的数据处理方法,其特征在于,通过无锁设计和预分配内存,事件对象在环形缓冲区中预先分配,以确保在高并发环境下数据的一致性和处理的准确性。

9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器加载并执行时,采用了权利要求1-8中任一项所述的方法。

10.一种电子设备,包括存储器、处理器及存储在存储器中并能够在处理器上运行的计算机程序,其特征在于,所述处理器加载并执行计算机程序时,采用了权利要求1-8中任一项所述的方法。

...

【技术特征摘要】

1.一种用于金融交易场景的数据处理方法,其特征在于,所述方法包括:

2.如权利要求1所述的一种用于金融交易场景的数据处理方法,其特征在于,所述初始化环形缓冲区包括:

3.如权利要求1所述的一种用于金融交易场景的数据处理方法,其特征在于,所述使用threadlocal进行线程本地存储包括:

4.如权利要求3所述的一种用于金融交易场景的数据处理方法,其特征在于,所述存储的对象包括交易事件对象和处理状态对象,交易事件对象包括交易id和交易价格,处理状态对象包括交易处理的中间状态和交易处理的结果。

5.如权利要求1所述的一种用于金融交易场景的数据处理方法,其特征在于,在处理交易数据后,还会根据处理结果来执行日志记录操作或者通知其他系统。

6.如权利要求1所述的一种用于金融交易场景的数据处理方法,其特征在于,所述环形缓冲区通过compar...

【专利技术属性】
技术研发人员:梁庆林
申请(专利权)人:北银金融科技有限责任公司
类型:发明
国别省市:

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

1