基于分布式挡板的交易测试方法、设备及介质技术

技术编号:38672604 阅读:11 留言:0更新日期:2023-09-02 22:49
本发明专利技术涉及大数据技术领域,提供一种基于分布式挡板的交易测试方法、设备及介质,其方法应用于基于C++构建的分布式挡板,基于C++的特性能够保证较低的时延水平;记录消息流中每个消息的接收时延打点信息,及记录响应回报消息的发送时延打点信息,并持久化到文件,以辅助判断交易过程各系统的性能;启用不同线程分别处理不同流程,且利用不同的消息处理器分别处理不同的业务消息,能够同时处理大批量的订单,适用于高并发交易场景。适用于高并发交易场景。适用于高并发交易场景。

【技术实现步骤摘要】
基于分布式挡板的交易测试方法、设备及介质


[0001]本专利技术涉及大数据
,尤其涉及一种 基于分布式挡板的交易测试方法、设备及介质。

技术介绍

[0002]在实际的交易中,会有大量订单从报盘同时报到交易所,或者大量响应、成交回报从交易所同时返回给报盘的场景。
[0003]但是,在现有的测试条件下,无法提供高并发大单量的订单撮合,不支持多种复杂的订单撮合策略,且无法输出时延统计文件来分析性能,因此,无法满足高并发且复杂的测试场景需求。

技术实现思路

[0004]鉴于以上内容,有必要提供一种基于分布式挡板的交易测试方法、设备及介质,旨在解决高并发场景下无法进行准确交易测试的问题。
[0005]一种基于分布式挡板的交易测试方法,应用于基于C++构建的分布式挡板,所述基于分布式挡板的交易测试方法包括:当接收到在高并发低时延场景下的交易测试请求时,注册至少一个消息处理器;接收报盘端发送的连接及消息流,并记录所述消息流中每个消息的接收时延打点信息;利用第一线程对所述消息流进行反序列化处理得到业务消息,并将所述业务消息存储至无锁消息队列;利用第二线程从所述至少一个消息处理器中获取对应的消息处理器对所述消息队列中的业务消息进行处理,得到响应回报消息;将所述响应回报消息发送至所述报盘端,并记录所述响应回报消息的发送时延打点信息;将每个消息的接收时延打点信息及所述响应回报消息的发送时延打点信息存储至时延处理队列;利用第三线程将所述时延处理队列中的数据持久化到文件,得到目标文件;根据所述目标文件生成交易测试结果。
[0006]根据本专利技术优选实施例,所述注册至少一个消息处理器包括:获取每个消息处理器的处理函数的位置数据;根据每个消息处理器的处理函数的位置数据生成函数指针,并将所述函数指针确定为消息号;将所述消息号作为数组下标生成数组;其中,所述消息号与所述业务消息相对应。
[0007]根据本专利技术优选实施例,所述接收报盘端发送的连接及消息流包括:
利用预先建立的TCP服务端接收所述报盘端发送的连接及消息流;其中,所述TCP服务端为使用ASIO模拟交易所网关建立得到。
[0008]根据本专利技术优选实施例,所述利用第一线程对所述消息流进行反序列化处理得到业务消息包括:对于所述消息流中的每个消息,利用所述第一线程获取所述消息的消息头及消息体;解析所述消息头,得到所述消息的业务消息类型及消息长度;调取与所述业务消息类型对应的业务消息反序列处理接口;利用所述业务消息反序列处理接口,按照所述消息长度从所述消息体中读取字段,并将读取的字段依次反序列化至对应的消息对象字段,得到所述消息对应的所述业务消息。
[0009]根据本专利技术优选实施例,所述利用第二线程从所述至少一个消息处理器中获取对应的消息处理器对所述消息队列中的业务消息进行处理,得到响应回报消息包括:对于所述消息队列中的每个业务消息,利用所述第二线程从所述至少一个消息处理器中获取与每个业务消息的消息号所对应的消息处理器;调用对应的消息处理器的处理函数对每个业务消息进行处理,得到每个业务消息对应的响应消息及回报消息;对每个业务消息对应的响应消息及回报消息进行组装,得到所述响应回报消息。
[0010]根据本专利技术优选实施例,所述方法还包括:当接收到对所述分布式挡板的配置文件的修改指令时,根据所述修改指令确定交易策略、订单成交模式、附加工作模式;其中,所述附加工作模式包括:滤重模式、同步回报模式、报盘轮询模式、实时撮合模式、自动撮合模式、交易所状态切换模式。
[0011]根据本专利技术优选实施例,所述根据所述修改指令确定交易策略、订单成交模式、附加工作模式后,所述方法还包括:当所述滤重模式被启动时,获取各个交易市场的重单检测规则,并根据各个交易市场的重单检测规则检测当前订单是否为重复订单;当所述当前订单为所述重复订单时,不处理所述当前订单或者返回对所述当前订单的拒绝响应信号;当所述同步回报模式被启动时,对所有处理过的订单及响应回报消息进行缓存;当接收到所述报盘端发送的同步回报请求时,对所述缓存中存储的所述订单及响应回报消息进行断点续传;当所述报盘轮询模式被启动时,利用所述配置文件修改对所述分布式挡板的分区配置,并在启动所述分布式挡板时模拟每个交易所的分区或者交易单元;当所述交易所状态切换模式被启动时,根据所述配置文件确定状态切换时间,根据所述状态切换时间进行状态切换;其中,所述状态包括闭市状态、预开市状态、开市状态;其中,所述实时撮合模式对应于模拟集合竞价或连续竞价时按照买卖订单进行撮合的场景;所述自动撮合模式对应于按需撮合的场景。
[0012]根据本专利技术优选实施例,所述方法还包括:当所述分布式挡板启动时,根据所述配置文件确定IP地址、端口、数据库名、表名;
基于所述IP地址、所述端口、所述数据库名、所述表名确定所述报盘端对应的报盘库;利用检测线程持续检测所述分布式挡板与所述报盘库的连接状态;当所述连接状态为未连接时,发起所述分布式挡板与所述报盘库间的连接;当所述连接状态发生改变时,记录改变后的连接状态,并利用记录的连接状态更新所述分布式挡板与所述报盘库的连接状态;其中,所述连接状态包括未连接、已连接、重连状态;当所述分布式挡板与所述报盘库的连接状态为已连接时,利用消息读取线程从所述报盘库中不断轮询遍历消息进行交易处理,并将处理后得到的响应回报消息回写至所述报盘库。
[0013]一种基于分布式挡板的交易测试装置,运行于基于C++构建的分布式挡板,所述基于分布式挡板的交易测试装置包括:注册单元,用于当接收到在高并发低时延场景下的交易测试请求时,注册至少一个消息处理器;记录单元,用于接收报盘端发送的连接及消息流,并记录所述消息流中每个消息的接收时延打点信息;处理单元,用于利用第一线程对所述消息流进行反序列化处理得到业务消息,并将所述业务消息存储至无锁消息队列;所述处理单元,还用于利用第二线程从所述至少一个消息处理器中获取对应的消息处理器对所述消息队列中的业务消息进行处理,得到响应回报消息;所述记录单元,还用于将所述响应回报消息发送至所述报盘端,并记录所述响应回报消息的发送时延打点信息;存储单元,用于将每个消息的接收时延打点信息及所述响应回报消息的发送时延打点信息存储至时延处理队列;持久化单元,用于利用第三线程将所述时延处理队列中的数据持久化到文件,得到目标文件;生成单元,用于根据所述目标文件生成交易测试结果。
[0014]一种计算机设备,所述计算机设备包括:存储器,存储至少一个指令;及处理器,执行所述存储器中存储的指令以实现所述基于分布式挡板的交易测试方法。
[0015]一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述基于分布式挡板的交易测试方法。
[0016]由以上技术方案可以看出,一方面,本专利技术应用于基于C++构建的分布式挡板,基于C++的特性能够保证较低的时延水平;一方面,记录消息流中每个消息的接收时延打点信息,及记录响应回报消息的发送本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分布式挡板的交易测试方法,其特征在于,应用于基于C++构建的分布式挡板,所述基于分布式挡板的交易测试方法包括:当接收到在高并发低时延场景下的交易测试请求时,注册至少一个消息处理器;接收报盘端发送的连接及消息流,并记录所述消息流中每个消息的接收时延打点信息;利用第一线程对所述消息流进行反序列化处理得到业务消息,并将所述业务消息存储至无锁消息队列;利用第二线程从所述至少一个消息处理器中获取对应的消息处理器对所述消息队列中的业务消息进行处理,得到响应回报消息;将所述响应回报消息发送至所述报盘端,并记录所述响应回报消息的发送时延打点信息;将每个消息的接收时延打点信息及所述响应回报消息的发送时延打点信息存储至时延处理队列;利用第三线程将所述时延处理队列中的数据持久化到文件,得到目标文件;根据所述目标文件生成交易测试结果。2.如权利要求1所述的基于分布式挡板的交易测试方法,其特征在于,所述注册至少一个消息处理器包括:获取每个消息处理器的处理函数的位置数据;根据每个消息处理器的处理函数的位置数据生成函数指针,并将所述函数指针确定为消息号;将所述消息号作为数组下标生成数组;其中,所述消息号与所述业务消息相对应。3.如权利要求1所述的基于分布式挡板的交易测试方法,其特征在于,所述接收报盘端发送的连接及消息流包括:利用预先建立的TCP服务端接收所述报盘端发送的连接及消息流;其中,所述TCP服务端为使用ASIO模拟交易所网关建立得到。4.如权利要求1所述的基于分布式挡板的交易测试方法,其特征在于,所述利用第一线程对所述消息流进行反序列化处理得到业务消息包括:对于所述消息流中的每个消息,利用所述第一线程获取所述消息的消息头及消息体;解析所述消息头,得到所述消息的业务消息类型及消息长度;调取与所述业务消息类型对应的业务消息反序列处理接口;利用所述业务消息反序列处理接口,按照所述消息长度从所述消息体中读取字段,并将读取的字段依次反序列化至对应的消息对象字段,得到所述消息对应的所述业务消息。5.如权利要求1所述的基于分布式挡板的交易测试方法,其特征在于,所述利用第二线程从所述至少一个消息处理器中获取对应的消息处理器对所述消息队列中的业务消息进行处理,得到响应回报消息包括:对于所述消息队列中的每个业务消息,利用所述第二线程从所述至少一个消息处理器中获取与每个业务消息的消息号所对应的消息处理器;调用对应的消息处理器的处理函数对每个业务消息进行处理,得到每个业务消息对应
的响应消息及回报消息;对每个业务消息对应的响应消息及回报消息进行组装,得到所述响应回报消息。6.如权利要求1所述的基于分布式挡板的交易测试方法,...

【专利技术属性】
技术研发人员:王有为张笑虹苗咏邹胜
申请(专利权)人:深圳华锐分布式技术股份有限公司
类型:发明
国别省市:

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

1