发明内容
基于此,有必要针对上述技术问题,提供一种能够缩小对订单处理时延的交易订单的处理系统和方法。
一种交易订单的处理系统,所述处理系统包括交易网关、交易引擎和报盘服务组件,且所述交易网关通过第一网卡与所述交易引擎连接,所述交易引擎通过第二网卡与所述报盘服务组件连接;
所述交易网关,用于接收委托订单,并通过所述第一网卡将所述委托订单路由至所述交易引擎;
所述交易引擎,用于根据所述委托订单进行业务计算处理得到订单合同数据,并通过所述第二网卡以远程直接内存访问方式向所述报盘服务组件发送所述订单合同数据;
所述报盘服务组件,用于通过第三网卡的加速模式根据预设规则将所述订单合同数据路由至报盘系统中;
其中,所述第一网卡与所述第二网卡均采用第一类别的低时延网卡,所述第三网卡采用第二类别的低时延网卡。
在其中一个实施例中,所述委托订单包括客户信息,所述客户信息有对应的分区;所述交易网关,还用于根据预设的分区路由策略,将所述委托订单路由至所述委托订单所对应的分区的交易引擎。
在其中一个实施例中,所述交易网关通过第四网卡连接有订单策略系统;所述第四网卡采用所述第二类别的低时延网卡;
所述订单策略系统,用于根据预设路由策略在多个候选交易网关中确定所述交易网关,并通过所述第四网卡将所述委托订单发送至所述交易网关。
在其中一个实施例中,所述报盘服务组件通过第五网卡与所述报盘系统连接,所述第五网卡采用所述第二类别的低时延网卡;
所述报盘系统,用于通过所述第五网卡向所述报盘服务组件发送交易结果数据,所述交易结果数据由所述报盘系统对所述订单合同数据进行处理而得到。
在其中一个实施例中,所述报盘服务组件,还用于通过所述第二网卡以所述远程直接内存访问方式将所述交易结果数据传输至所述交易引擎。
在其中一个实施例中,所述交易引擎,还用于对所述交易结果数据进行结算处理,并通过所述第一网卡以所述远程直接内存访问方式将处理结果传输至所述交易网关。
在其中一个实施例中,所述交易网关还用于通过第四网卡的加速模式将所述处理结果返回至所述订单策略系统。
在其中一个实施例中,所述易网关、所述交易引擎以及所述报盘服务组件分别部署在不同的服务器上;
各所述服务器采用满通道配置,各所述服务器的磁盘选用NVME固态硬盘。
在其中一个实施例中,所述交易网关、所述交易引擎以及所述报盘服务组件通过同一总线进行通信,所述第一类别的低时延网卡应用在处理系统内部总线的组播通讯。
一种交易订单的处理方法,所述方法还包括:
所述交易网关接收委托订单,并通过所述第一网卡将所述委托订单路由至所述交易引擎;
所述交易引擎根据所述委托订单进行业务计算处理得到订单合同数据,并通过所述第二网卡以远程直接内存访问方式向所述报盘服务组件发送所述订单合同数据;
所述报盘服务组件通过第三网卡的加速模式根据预设规则将所述订单合同数据路由至报盘系统中;
其中,所述交易网关通过第一网卡与所述交易引擎连接,所述交易引擎通过第二网卡与所述报盘服务组件连接;所述第一网卡与所述第二网卡均采用第一类别的低时延网卡,所述第三网卡采用第二类别的低时延网卡。
在其中一个实施例中,所述委托订单包括客户信息,所述客户信息对应有分区;所述交易网关将所述委托订单路由至所述交易引擎,包括:
所述交易网关根据预设的分区路由策略,将所述委托订单路由至所述委托订单所对应的分区的交易引擎。
上述交易订单的处理系统和方法,所述第一网卡与所述第二网卡均采用第一类别的低时延网卡,所述第三网卡采用第二类别的低时延网卡,交易引擎通过所述第二网卡以远程直接内存访问方式向所述报盘服务组件发送所述订单合同数据,报盘服务组件通过第三网卡的加速模式根据预设规则将所述订单合同数据路由至报盘系统中,缩小系统对委托订单处理的时延,提升了处理系统的时效性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种交易订单的处理系统100。该处理系统包括交易网关110、交易引擎120和报盘服务组件130,且交易网关110通过第一网卡140与交易引擎120连接,交易引擎120通过第二网卡150与报盘服务组件130连接。其中,交易网关110,用于接收委托订单,并通过第一网卡140将委托订单路由至交易引擎120。交易引擎120,用于根据委托订单进行业务计算处理得到订单合同数据,并通过第二网卡150以远程直接内存访问方式向报盘服务组件130发送订单合同数据。报盘服务组件130,用于通过第三网卡160的加速模式根据预设规则将订单合同数据路由至报盘系统170中。
其中,第一网卡140与第二网卡150均采用第一类别的低时延网卡,第三网卡160采用第二类别的低时延网卡。在一些实施例中,由于处理系统100内部采用一种的组播协议,Mellanox低时延网卡的RDMA(一种组播协议)协议是业界较快的一种,其它网卡的效果不如它。处理系统与外部的通信采用TCP协议操作,首先订单策略系统是处理系统外的部分,为了安全的连接通信,因此采用TCP,其次交易所的报盘系统提供的对外连接服务同样采用TCP协议;针对TCP协议,Solarflare低时延网卡的几种零拷贝技术,性能效果在业界最快的;综上所述,因为有两种协议的存在,在保持各协议都有最佳效果的基础上,采用各自最有利的硬件,将能达到降低时延的效果。第一类别的低时延网卡可以采用Mellanox低时延网卡,第二类别的低时延网卡可以采用Solarflare低时延网卡。交易网关110(Gate Way,GW)负责与客户端进行消息交互。交易引擎120(Trading Engine,TE)负责对客户端的交易请求进行处理。报盘服务组件130(Order Routing Service,ORS)是用于向交易所提供交易信息的服务组件。交易网关110、交易引擎120以及报盘服务组件130可以分别通过独立的服务器实现,也可以合并部署到同一台服务器上,可以根据方案的实际情况进行灵活的部署。具体地,在订单策略系统发送委托订单时,基于低时延网络交易网关110接收到委托订单。可以预先在部署交易网关110的服务器上配置有数据路由与上下游的关系,生成对应的路由策略,从而通过第一网卡交易网关110,根据路由策略将委托订单路由至交易引擎120。交易引擎120可以采用风控检查、资金费用冻结、交易计算、按照交易所的规则定义中的任一种或者多种方式对委托订单进行业务计算处理,生成订单合同数据。交易引擎120通过第二网卡与报盘服务组件130连接,交易引擎120将生成的订单合同数据以远程直接内存访问方式向下游的报盘服务组件130发送。第三网卡的加速模式可以是Solarflare低时延网卡的Onload加速模式,预设规则可以与交易平台(比如上交所交易平台或者深交所交易平台)有关,预设规则还可以与客户账户的交易单元有关,预设规则也可以与业务类型有关,业务类型可以包括买卖业务、新股申购、配股、增发、申购申赎等。报盘服务组件130通过第三网卡与交易所的报盘系统连接,通过第三网卡的加速模式报盘服务组件130根据预设规则将订单合同数据路由至报盘系统中。
上述交易订单的处理系统中,第一网卡与第二网卡均采用第一类别的低时延网卡,第三网卡采用第二类别的低时延网卡,交易引擎通过第二网卡以远程直接内存访问方式向报盘服务组件发送订单合同数据,报盘服务组件通过第三网卡的加速模式根据预设规则将订单合同数据路由至报盘系统中,缩小系统对委托订单处理的时延,提升了处理系统的时效性。
在一个实施例中,委托订单包括客户信息,客户信息对应有分区。交易网关110,还用于根据预设的分区路由策略,将委托订单路由至委托订单所对应的分区的交易引擎120。
其中,委托订单中包括客户信息,客户信息对应有分区。分区路由策略可以预先设定了属于哪个分区的客户信息所对应的委托订单需要路由至对应的交易引擎。服务器中预先存储有客户信息与分区的对应关系以及分区与交易引擎的对应关系。可以理解的是,交易引擎120的数量可以是多个的。具体地,根据预设的分区路由策略,在若干个分区中选择委托订单所对应的分区,在若干个交易引擎中确定该分区对应的交易引擎。最后,交易网关110将委托订单路由至委托订单所对应的分区的交易引擎120。
在一个实施例中,如图2所示,处理系统通过第四网卡210连接有订单策略系统220。订单策略系统220,用于根据预设路由策略在多个候选交易网关中确定交易网关110,并通过第四网卡210将委托订单发送至交易网关110。
其中,第四网卡210采用第二类别的低时延网卡。第二类别的低时延网卡可以采用Solarflare低时延网卡。具体地,处理系统可以具有多个交易网关,这些交易网关作为候选交易网关。订单策略系统220将委托订单发送至对应的交易网关110之前,需要根据预设路由策略在多个候选交易网关中确定交易网关110。订单策略系统220通过第四网卡210与交易网关110连接,因此,订单策略系统220通过第四网卡210将委托订单发送至选择的交易网关110。本实施中,通过借助第四网卡降低各组件间的网络传输时延,提升处理系统的时效,改善用户体验。
在一个实施例中,如图3所示,处理系统通过第五网卡310与报盘系统170连接。报盘系统170,用于通过第五网卡向报盘服务组件130发送交易结果数据,交易结果数据由报盘系统对订单合同数据进行处理而得到。
其中,第五网卡310采用第二类别的低时延网卡,第五网卡310可以采用Solarflare低时延网卡。报盘系统170是处理系统的外围系统,处理系统的报盘系统170通过第五网卡与报盘系统170连接。具体地,报盘系统170对订单合同数据进行处理,得到交易结果数据,并通过第五网卡将交易结果数据发送至报盘服务组件130,以向上游传输交易结果。
在一个实施例中,报盘服务组件130,还用于通过第二网卡150以远程直接内存访问方式将交易结果数据传输至交易引擎120。
其中,需要报盘服务组件130将交易结果数据继续向上游进行传输,且报盘服务组件130通过第二网卡150与交易引擎120连接。为了降低网络传输时延,报盘服务组件130采用远程直接内存访问方式将交易结果数据传输至交易引擎120,且交易引擎120可以对交易结果数据进行比如资金计算、费用计算、持仓数据的增减等处理。
在一个实施例中,交易引擎120,还用于对交易结果数据进行结算处理,并通过第一网卡140以远程直接内存访问方式将处理结果传输至交易网关110。
具体地,交易引擎120接收到交易结果数据后,对交易结果数据进行结算处理。交易引擎120将结算的处理结果继续向上游传输,通过第一网卡140以远程直接内存访问方式将处理结果传输至交易网关110。
在一个实施例中,交易网关110还用于通过第四网卡210的加速模式将处理结果返回至订单策略系统220。
具体地,第四网卡210的加速模式可以采用Solarflare网卡的Onload加速模式。交易网关110通过第四网卡210与订单策略系统220连接,将处理结果返回至订单策略系统220。
在一个实施例中,易网关、交易引擎以及报盘服务组件分别部署在不同的服务器上;各服务器采用满通道配置,且内存访问带宽达到280GB/s;各服务器的磁盘选用NVME固态硬盘。需要说明的是,若易网关、交易引擎以及报盘服务组件分别部署在不同的服务器上时,可以采用PTP(Precision Time Protocol,高精度时间同步协议)校时服务实时校准,确保不同服务器之间的时间同步性。
示例性地,在服务器硬件上,可以选用当前Intel最新一代至强处理器6200Refresh系统,具有最卓越的处理器处理性能,在满足应用对核心数要求的情况下,处理器可以睿频到4.1GHz。其次在内存配置选用当前最新一代的DDR42933MHz内存芯片,采用满通道配置,最高内存访问带宽可达280GB/s。另外,在磁盘选型上,根据交易系统不同模块对磁盘IO需求,选用合适恰当的磁盘类型,对于读写密集型的MySQL数据库应用,选用当前最先进的NVME SSD,单颗磁盘的IOPS高达50万/s以上,读写带宽在3GB/s。
在一个实施例中,交易网关、交易引擎以及报盘服务组件通过同一总线进行通信,第一类别的低时延网卡应用在处理系统内部总线的组播通讯。
在一个实施例中,本申请公开一种交易订单的处理系统,如图4所示,该处理系统包括交易网关110、交易引擎120和报盘服务组件130,交易网关具有Mellanox低时延网卡和Solarflare低时延网卡。交易引擎具有Mellanox低时延网卡。报盘服务组件具有Mellanox低时延网卡和Solarflare低时延网卡。交易网关的Mellanox低时延网卡、交易引擎的Mellanox低时延网卡、报盘服务组件的Mellanox低时延网卡均连接至第一低时延交换机410。交易网关的Solarflare低时延网卡与订单策略系统220的Solarflare低时延网卡均连接至第二低时延交换机420。报盘服务组件的Solarflare低时延网卡与报盘系统170的Solarflare低时延网卡均连接至第三低时延交换机430。
具体地,本实施例中选用Mellanox的Infiniband系列低时延网卡、SolarflareX2522系列低时延网卡,以最大化的优化系统端到端的访问时延。比如,Mellanox低时延网卡可以采用Mellanox的Infiniband系列低时延网卡。Mellanox Infiniband低时延网卡采用RDMA远程直接内存访问技术,可以支持应用到网卡到零拷贝技术、系统内核旁路、支持Scatter和Gather操作等技术特点,网卡的端到端时延低至0.7us。各个组件(交易网关、交易引擎和报盘服务组件)通过同一总线来通信。Mellanox Infiniband低时延网卡主要应用在处理系统内部总线的组播通讯。
Solarflare低时延网卡可以采用Solarflare X2522低时延网卡,且SolarflareX2522低时延网卡支持Onload/TcpDirect加速技术。Onload加速技术基于IP协议栈重新在应用层实现TCP/UDP协议,应用与网卡的交互无需系统内核参与,降低网络传输时延。TCPdirect是在onload技术上更深程度的协议实现,具有比onload更低的传输时延。Solarflare低时延网卡的Onload/Tcpdirect加速技术主要应用于处理系统与周边系统(比如订单策略系统、报盘系统)对接使用。
第一低时延交换机可以采用业界二层/三层网络交换机时延低的Cisco Nexus3548低时延交换机。该低时延交换机支持创新的Algorithm Boost(也称为Algo Boost)技术,Algo Boost技术基于交换机专用集成电路(ASIC)构建,使得Nexus 3548可以实现低于200纳秒(ns)的第2层和第3层交换延迟。
进一步地,在操作系统(OS)层面,优化OS系统的内核参数,比如调整处理器运行在最大性能模式、隔离或绑定处理器核心、调整中断亲和度等;精简系统的部署模块,比如精简系统的启动服务;优化系统电源策略/调度策略,为上层中间件和应用提供性能最优的系统平台。在服务器硬件上,首先选用当前Intel最新一代至强处理器6200Refresh系统,具有最卓越的处理器处理性能,在满足应用对核心数要求的情况下,处理器可以睿频到4.1GHz。其次在内存配置选用当前最新一代的DDR4 2933MHz内存芯片,采用满通道配置,最高内存访问带宽可达280GB/s。然后在磁盘选型上,根据ATP系统不同模块对磁盘IO需求,选用合适恰当的磁盘类型,对于读写密集型的MySQL数据库应用,选用当前最先进的NVME SSD,单颗磁盘的IOPS高达50万/s以上,读写带宽在3GB/s。
本实施例中,该处理系统实测20000笔/秒吞吐上行全路径时延可低至8微秒,可见,该处理系统是超低时延的极速交易系统。
应该理解的是,上述交易订单的处理系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图5所示,本申请提供一种交易订单的处理方法,该方法包括以下步骤:
S510、交易网关接收委托订单,并通过第一网卡将委托订单路由至交易引擎。
S520、交易引擎根据委托订单进行业务计算处理得到订单合同数据,并通过第二网卡以远程直接内存访问方式向报盘服务组件发送订单合同数据。
S530、报盘服务组件通过第三网卡的加速模式根据预设规则将订单合同数据路由至报盘系统中。
其中,所述交易网关通过第一网卡与所述交易引擎连接,所述交易引擎通过第二网卡与所述报盘服务组件连接;所述第一网卡与所述第二网卡均采用第一类别的低时延网卡,所述第三网卡采用第二类别的低时延网卡。
在一个实施例中,所述委托订单包括客户信息,所述客户信息对应有分区。在步骤S530中,所述交易网关将所述委托订单路由至所述交易引擎,包括:所述交易网关根据预设的分区路由策略,将所述委托订单路由至所述委托订单所对应的分区的交易引擎。
在一个实施例中,所述交易网关通过第四网卡连接有订单策略系统;所述第四网卡采用所述第二类别的低时延网卡。在所述交易网关接收委托订单之前,该处理方法还包括:所述订单策略系统根据预设路由策略在多个候选交易网关中确定所述交易网关,并通过所述第四网卡将所述委托订单发送至所述交易网关。
在一个实施例中,所述报盘服务组件通过第五网卡与所述报盘系统连接,所述第五网卡采用所述第二类别的低时延网卡;该处理方法还包括:所述报盘系统通过所述第五网卡向所述报盘服务组件发送交易结果数据,所述交易结果数据由所述报盘系统对所述订单合同数据进行处理而得到。
在一个实施例中,该处理方法还包括:所述报盘服务组件通过所述第二网卡以所述远程直接内存访问方式将所述交易结果数据传输至所述交易引擎。
在一个实施例中,该处理方法还包括:交易引擎对所述交易结果数据进行结算处理,并通过所述第一网卡以所述远程直接内存访问方式将处理结果传输至所述交易网关。
在一个实施例中,该处理方法还包括:通过第四网卡的加速模式,所述交易网关将所述处理结果返回至所述订单策略系统。
在一个实施例中,所述易网关、所述交易引擎以及所述报盘服务组件分别部署在不同的服务器上;
各所述服务器采用满通道配置,且内存访问带宽达到280GB/s;
各所述服务器的磁盘选用NVME固态硬盘。
在一个实施例中,所述交易网关、所述交易引擎以及所述报盘服务组件通过同一总线进行通信,所述第一类别的低时延网卡应用在处理系统内部总线的组播通讯。
在一个实施例中,如图6所示,本申请公开的交易订单的处理方法的路径示意图。该处理方法应用于上述实施例所述的交易订单的处理系统中。交易网关通过第一网卡与所述交易引擎连接,所述交易引擎通过第二网卡与所述报盘服务组件连接;所述第一网卡与所述第二网卡均采用第一类别的低时延网卡,所述第三网卡采用第二类别的低时延网卡。G1、G2、G11、G12表示交易网关与其他组件进行交互的接口。T3、T4、T9、T10表示交易引擎与其他组件进行交互的接口。O5、O6、O7、O8表示报盘服务组件与其他组件进行交互的接口。该处理犯法包括以下步骤:
S610、所述订单策略系统根据预设路由策略在多个候选交易网关中确定所述交易网关,并通过所述第四网卡将所述委托订单发送至所述交易网关。
其中,所述交易网关通过第四网卡连接有订单策略系统;所述第四网卡采用所述第二类别的低时延网卡。
S620、所述交易网关接收委托订单,并通过所述第一网卡将所述委托订单路由至所述交易引擎。
具体地,根据预设的分区路由策略,将所述委托订单路由至所述委托订单所对应的分区的交易引擎。
S630、所述交易引擎根据所述委托订单进行业务计算处理得到订单合同数据,并通过所述第二网卡以远程直接内存访问方式向所述报盘服务组件发送所述订单合同数据。
S640、所述报盘服务组件通过第三网卡的加速模式根据预设规则将所述订单合同数据路由至报盘系统中。
其中,所述报盘服务组件通过第五网卡与所述报盘系统连接,所述第五网卡采用所述第二类别的低时延网卡。
S650、所述报盘系统通过所述第五网卡向所述报盘服务组件发送交易结果数据。
其中,所述交易结果数据由所述报盘系统对所述订单合同数据进行处理而得到。所述报盘服务组件通过第五网卡与所述报盘系统连接,所述第五网卡采用所述第二类别的低时延网卡。
S660、所述报盘服务组件通过所述第二网卡以所述远程直接内存访问方式将所述交易结果数据传输至所述交易引擎。
S670、交易引擎对所述交易结果数据进行结算处理,并通过所述第一网卡以所述远程直接内存访问方式将处理结果传输至所述交易网关。
S680、通过第四网卡的加速模式,所述交易网关将所述处理结果返回至所述订单策略系统。
关于交易订单的处理方法的具体限定可以参见上文中对于交易订单的处理系统的限定,在此不再赘述。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种交易订单的处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述实施例中的方法步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中的方法步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。