CN113193974B - 基于组播的行情信息推送方法、系统、设备及介质 - Google Patents
基于组播的行情信息推送方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN113193974B CN113193974B CN202110749088.7A CN202110749088A CN113193974B CN 113193974 B CN113193974 B CN 113193974B CN 202110749088 A CN202110749088 A CN 202110749088A CN 113193974 B CN113193974 B CN 113193974B
- Authority
- CN
- China
- Prior art keywords
- subscription
- market
- data
- multicast
- market information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- Marketing (AREA)
- Medical Informatics (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种基于组播的行情信息推送方法、系统、设备及介质,涉及计算机网络技术领域,该方法包括:依据接收到的行情网络数据报文,确定行情消息数据;依据预设的订阅配置参数对所述行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据;对每一个用户订阅模块对应的订阅行情数据进行封装,并将封装后得到的行情数据报文发送给对应组播域中的客户端,其中,所述组播域与所述用户订阅模块一一对应。本申请解决了现有客户端采用TCP连接方式连接证券交易系统导致整个网络系统臃肿、系统性能差的问题,在减少点对点的TCP连接的同时,降低网络行情数据冗余和客户端数据处理延时,提高行情刷新效率。
Description
技术领域
本申请涉及计算机网络技术领域,尤其涉及一种基于组播的行情信息推送方法、系统、设备及介质。
背景技术
随着计算机网络技术的快速发展,诸如服务器、个人计算机、手机等设备越来越普及,给人们的生活、工作及学习带来了极大的便利,如可以利用手机查看证券行情数据,以实时了解证券交易所根据有关规定发布的即时交易信息。
目前,市场上证券交易系统的网络通信主要是采用传输控制协议(TransmissionControl Protocol,TCP)/网络协议(Internet Protocol,IP)。其中,TCP/IP是一种面向连接的、可靠的、传输层通信协议,能够保证数据不丢包、不乱序,但要求客户端与服务器具有唯一的地址,实现服务器与客户端之间“一对一”通讯,及时响应客户端的请求,将数据传送到其指定的目的地。若一个用户需要查看证券行情,则需要先通过客户端与证券交易系统的行情网关建立TCP网络连接,行情网关才向客户端发送证券原始行情数据,且该证券原始行情数据需要经过行情解析系统进行证券行情解析重组后再发送给客户端,这样用户才能通过客户端查看正确的行情数据;若100个用户同时查看证券行情,则行情网关需要分别发送证券行情数据这100个用户各自的客户端,重复100次发送过程,因此网络中会同时存在大量重复的证券行情数据,从而显得整个网络系统臃肿,网络传输效率低。若继续增加用户需求,则系统效率会越来越低。可见,现有客户端采用TCP连接方式连接证券交易系统接收证券行情,多个客户则需要多个点对点的TCP连接,造成整个网络系统臃肿,影响整个系统性能。
发明内容
有鉴于此,本申请提供了一种基于组播的行情信息推送方法、系统、设备及介质,以减少点对点的TCP连接,降低网络行情数据冗余,提高系统性能。
第一方面,本申请提供了一种基于组播的行情信息推送方法,包括:
依据接收到的行情网络数据报文,确定行情消息数据;
依据预设的订阅配置参数对所述行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据;
对每一个用户订阅模块对应的订阅行情数据进行封装,并将封装后得到的行情数据报文发送给对应组播域中的客户端,其中,所述组播域与所述用户订阅模块一一对应。
可选的,所述预设的订阅配置参数包含各个用户订阅模块对应配置的订阅类型参数,所述依据预设的订阅配置参数对所述行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据,包括:
将所述行情消息数据输入到至少两个用户订阅模块;
在每一个用户订阅模块中,基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,得到每一个用户订阅模块对应的订阅行情数据。
可选的,所述订阅类型参数包含行情类型参数,所述行情类型参数用于配置所述用户订阅模块对应的行情类型,所述基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,包括:
从所述行情消息数据中提取消息头字段;
依据所述消息头字段确定所述行情消息数据的消息类型;
若所述消息类型符合所述用户订阅模块对应的行情类型,则将所述行情消息数据确定为用户订阅模块对应的订阅行情数据;否则,丢弃所述行情消息数据。
可选的,所述基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,包括:
从所述行情消息数据中提取业务标识字段;
依据所述业务标识字段进行地址转换,得到目标存储地址;
从所述目标存储地址中读取所述用户订阅模块的订阅类型参数;
若所述行情消息数据的消息类型与所述订阅类型参数相匹配,则将所述行情消息数据确定为用户订阅模块对应的订阅行情数据;否则,丢弃所述行情消息数据。
可选的,所述依据所述业务标识字段进行地址转换,得到目标存储地址,包括:
确定所述业务标识字段包含的证券代码;
将所述证券代码转换为所述目标存储地址。
可选的,所述基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,还包括:
依据所述订阅类型参数确定订阅类型;
从所述行情消息数据中提取消息头字段,并依据所述消息头字段确定所述行情消息数据的消息类型;
判断所述行情消息数据的消息类型是否与所述订阅类型相匹配;
若所述行情消息数据的消息类型与所述订阅类型相匹配,则确定所述行情消息数据的消息类型与所述订阅类型参数相匹配;
若所述行情消息数据的消息类型与所述订阅类型不匹配,则确定所述行情消息数据的消息类型与所述订阅类型参数不匹配。
可选的,上述基于组播的行情信息推送方法还包括:依据预设的第一组播配置参数,接收交易服务器发送的行情网络数据报文。其中,所述依据接收到的行情网络数据报文,确定行情消息数据,包括:根据所述交易服务器的行情数据接口协议,从接收到的行情网络数据报文提取出各类型的行情数据;对所述各类型的行情数据进行重组处理,得到行情消息数据。
可选的,上述基于组播的行情信息推送方法还包括:
接收客户端发送的用户登录请求;
依据所述用户登录请求确定组播订阅配置信息,所述组播订阅配置信息包含所述第一组播配置参数和所述订阅配置参数,所述第一组播配置参数用于配置行情接收单元的组播地址和端口,所述行情接收单元用于接收所述行情网络数据报文。
可选的,所述依据所述用户登录请求确定组播订阅配置信息,包括:
从所述用户登录请求中提取用户的订阅信息;
基于所述用户的订阅信息确定所述组播订阅配置信息。
可选的,上述基于组播的行情信息推送方法还包括:基于所述客户端的数据接收格式确定行情消息数据格式。其中,所述对所述各类型的行情数据进行重组处理,包括:将所述各类型的行情数据按照所述行情消息数据格式进行重组。
可选的,所述对每一个用户订阅模块对应的订阅行情数据进行封装,并将封装后得到的行情数据报文发送给对应组播域中的客户端,包括:
针对每一个用户订阅模块对应的订阅行情数据,通过与所述用户订阅模块对应连接的组播推送模块进行封装,得到所述行情数据报文;
通过所述组播推送模块配置的组播地址和端口,对所述行情数据报文进行推送,以将所述行情数据报文发送给对应组播域中的客户端。
可选的,所述组播订阅配置信息还包含第二组播配置参数;
所述第二组播配置参数用于配置所述组播推送模块的组播地址和端口;
所述组播推送模块用于按照网络组播协议对所述订阅行情数据进行报文封装。
第二方面,本申请提供了一种基于组播的行情信息推送系统,其特征在于,包括:
行情解析重组单元,用于依据接收到的行情网络数据报文,确定行情消息数据;
订阅单元,用于依据预设的订阅配置参数对所述行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据;
组播推送单元,用于对每一个用户订阅模块对应的订阅行情数据进行封装,以将封装后得到的行情数据报文推送给对应组播域中的客户端,其中,所述组播域与所述用户订阅模块一一对应。
第三方面,本申请提供了一种基于组播的行情信息推送设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一项所述的基于组播的行情信息推送方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的基于组播的行情信息推送方法的步骤。
本申请实施例通过依据接收到的行情网络数据报文,确定行情消息数据,并依据预设的订阅配置参数对该行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据;随后可对每一个用户订阅模块对应的订阅行情数据进行封装,以将封装后得到的行情数据报文发送给对应组播域中的客户端,实现了行情数据的组播推送,使得组播域中的各个客户端均可以接收到行情数据报文,能够避免现有技术中客户端采用TCP连接方式连接证券交易系统接收证券行情导致整个网络系统臃肿的情形,即解决现有客户端采用TCP连接方式连接证券交易系统导致整个网络系统臃肿、系统性能差的问题,在减少点对点的TCP连接的同时,能够降低网络行情数据冗余,降低客户端数据处理延时,以及能够提高行情刷新效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于组播的行情信息推送方法的步骤流程图;
图2为本申请一个可选实施例提供的一种基于组播的行情信息推送方法的步骤流程图;
图3为本申请一个示例中的一种基于组播的行情信息推送系统的框架示意图;
图4是本申请一个示例中的一种行情网络数据报文的数据格式的示意图;
图5为本申请一个示例中的一种订阅单元内部结构的示意图;
图6是本申请一个示例中的一种消息头字段的示意图;
图7是本申请一个示例中的一种单个用户订阅模块的内部框图;
图8是本申请实施例中的一种基于组播的行情信息推送系统的结构框图;
图9为本申请实施例提供的一种基于组播的行情信息推送设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,现有传统单个用户需要查看证券行情时是先通过客户端与行情网关建立TCP网络连接,行情网关才向客户端发送证券原始行情数据,再经过行情解析系统,将证券行情解析重组后,发送给客户端,用户才能查看行情数据。若100个用户同时查看证券行情时,则行情网关分别发送证券行情数据到各自客户端,重复100次发送过程。因此网络中会同时存在大量重复的证券行情数据,显得整个网络系统臃肿,网络传输效率低。若继续增加用户需求,则系统效率会越来越低,因而需要对系统进行升级改进。
此外,客户端需要实时接收证券行情,并处理后显示。例如,在证券交易所服务器每隔3秒推送一次所有证券代码的快照行情,其它时间实时推出证券代码的逐笔委托或者逐笔成交行情数据的情况下,客户端需要在极短时间内处理接收到的所有证券行情数据。若客户端运算处理不够快,则行情刷新需要等待较长时间,导致行情显示延时,不利于客户实时交易。
本申请实施例的核心构思之一在于,提出了一种基于组播的行情信息推送方法,以将行情数据通过组播订阅推送,利用组播的优势,支持多个客户同时接收行情数据,减少点对点的TCP连接,降低网络行情数据冗余,在提高系统性能的同时,降低客户端数据处理延时,提高行情刷新效率。
需要说明的是,组播技术是单个发送者对应多个接收者的一种网络通信,主要利用用户数据报协议(User Datagram Protocol,UDP)通讯的特点。具体而言,组播源把数据包发送到特定的组播组,加入该同一组的所有客户端都可以接受此组内的数据包。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其它不需要(未加入组)的主机的通讯。
参照图1,示出了本申请实施例提供的一种基于组播的行情信息推送方法的步骤流程图。本申请提供的基于组播的行情信息推送方法可以适用行情信息推送情况,如适用于证券行情订阅推送情况,具体可以包括如下步骤:
步骤101,依据接收到的行情网络数据报文,确定行情消息数据。
其中,行情网络数据报文可以是指包含有行情数据字段的网络数据报文,该行情数据字段可以携带有原始行情数据。具体的,本申请实施例在接收到行情网络数据报文后,可以通过对该行情网络数据报文进行解析,得到该行情网络数据报文的行情数据字段所携带的原始行情数据,进而可以基于原始行情数据对各类型的行情数据进行行情重组,得到行情消息数据。
在实际处理中,本申请实施例中的行情网络数据报文可以由交易服务器通过网络发送,且该交易服务器可以是指交易所的服务器。进一步而言,本申请实施例在接收到交易服务器发送的行情网络数据报文后,可以根据交易所提供的行情数据接口规范,对接收到行情网络数据报文进行解析,以从原始行情数据中提取出各类型的行情数据,随后可基于提取到的个各类型的行情数据进行重新排列输出,得到行情消息数据。可选的,本申请实施例依据接收到的行情网络数据报文,确定行情消息数据,具体可以包括:根据交易服务器的行情数据接口协议,从接收到的行情网络数据报文提取出各类型的行情数据;对所述各类型的行情数据进行重组处理,得到行情消息数据。其中,各类型的行情数据可以包括有指数行情数据、快照行情(LEVEL2)数据、逐笔委托数据、逐笔成交数据等,本申请实施例对此不作具体限制。
步骤102,依据预设的订阅配置参数对所述行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据。
在具体实现中,可以预先根据用户的订阅需求设置对应的订阅配置参数,使得用户订阅模块能够基于该订阅配置参数对接收到的行情消息数据进行订阅过滤,以将符合用户配置的订阅类型的行情消息数据输出。其中,订阅配置参数可以用于确定用户所配置的订阅类型;该订阅类型可以表示用户订阅的类型,具体可以用于确定接收到的行情消息数据是否有效,若行情消息数据有效,则输出,否则该行情消息数据不输出。
进一步而言,本申请实施例中的预设的订阅配置参数可以包含各个用户订阅模块对应配置的订阅类型参数,所述依据预设的订阅配置参数对所述行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据,具体可以包括:将所述行情消息数据输入到至少两个用户订阅模块;在每一个用户订阅模块中,基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,得到每一个用户订阅模块对应的订阅行情数据。
具体的,本申请实施例中可以预先根据用户的订阅信息,将订阅类型参数配置到一个或多个用户订阅模块中,如一个用户的订阅信息可以作为订阅类型参数,配置到单独一个用户订阅模块中,实现每个用户独立的订阅;又如,一个用户的订阅信息可以包含有不同的订阅类型参数,即每个用户的订阅参数可能不相同,可以将不同的订阅类型参数按照订阅类型配置到对应得用户订阅模块中,使得多个用户可以各自使用订阅类型对应的用户订阅模块进行订阅,互部干涉,使得每一个用户订阅模块可以依据预先配置的订阅类型参数对接收到的行情消息数据进行过滤处理,以将符合预先配置的订阅类型参数对应的订阅类型的行情消息数据输出,作为该用户订阅模块对应的订阅行情数据。
在实际处理中,用户的订阅信息可以通过用户登录请求发送给行情信息推送系统的管理主机(Host),使得行情信息推送系统可以依据用户登录请求携带的订阅信息进行配置,如将订阅类型参数配置到对应的用户订阅模块中,实现将用户配置的订阅类型设置到用户订阅模块,使得用户订阅模块可以依据预先配置的订阅类型参数对行情消息数据进行订阅过滤,输出符合用户配置的订阅类型的行情消息数据,以作为用户订阅模块对应的订阅行情数据。
进一步的,本申请实施例提供的基于行情信息推送方法,还可以包括:接收客户端发送的用户登录请求;依据所述用户登录请求确定组播订阅配置信息,所述组播订阅配置信息包含第一组播配置参数和订阅配置参数。其中,所述第一组播配置参数可以用于配置行情接收单元的组播地址和端口,所述行情接收单元用于接收所述行情网络数据报文。具体而言,本申请是例可以依据预设的第一组播配置参数将行情接收的组播网际互连协议(Internet Protocol,IP)地址和端口配置到行情接收单元,使得行情接收单元可以基于该组播IP地址和端口接收行情网络数据报文,从而可以依据接收到的行情网络数据报文确定出行情消息数据。随后,可以根据用户订阅模块的数量,通过现场可编程门阵列(FieldProgrammable Gate Array,FPGA)将一路行情消息数据扩展成多路,以将扩展后的多路行情消息数据分别输入到多个不同的用户订阅模块中,从而可以通过多个不同的用户订阅模块分别对行情消息数据进行过滤处理,得到多个不同的用户订阅模块输出的订阅行情数据。其中,行情消息数据扩展后的路试与用户订阅模块的数量相同,如在有N个不同的用户订阅模块情况下,需要将一路行情消息数据扩展成N路,以将行情消息数通过N路分别输入到N个不同的用户订阅模块中进行过滤处理,得到N个不同用户订阅模块输出的订阅行情数据。其中,N为大于1的整数,如N可以是48等,本申请实施例对此不作限制。
步骤103,对每一个用户订阅模块对应的订阅行情数据进行封装,并将封装后得到的行情数据报文发送给对应组播域中的客户端,其中,所述组播域与所述用户订阅模块一一对应。
具体而言,本申请实施例在得到每一个用户订阅模块对应的订阅行情数据后,可以按照网络组播协议对该订阅行情数据进行报文封装,并可将封装后得到的行情数据报文推送到网络中,如可以通过PHY IP接口将封装后得到的行情数据报文退出到推出到网络中,以通过网络将行情数据报文发送到对应的组播域,使得与该用户订阅模块对应的组播域中的各个客户端可以接收到该行情数据报文,进而使得该组播域中的各个客户端可以依据该行情数据报文展示对应的行情数据给用户,实现了组播推送行情数据。
可见,本申请实施例通过依据接收到的行情网络数据报文,确定行情消息数据,并依据预设的订阅配置参数对该行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据;随后可对每一个用户订阅模块对应的订阅行情数据进行封装,以将封装后得到的行情数据报文发送给对应组播域中的客户端,实现了行情数据的组播推送,使得组播域中的各个客户端均可以接收到行情数据报文,能够避免现有技术中客户端采用TCP连接方式连接证券交易系统接收证券行情导致整个网络系统臃肿的情形,即解决现有客户端采用TCP连接方式连接证券交易系统导致整个网络系统臃肿、系统性能差的问题,在减少点对点的TCP连接的同时,能够降低网络行情数据冗余,降低客户端数据处理延时,以及能够提高行情刷新效率。
在上述例地基础上,可选的,本申请实施例提供的基于组播的行情信息推送方法还可以包括:依据预设的第一组播配置参数,接收交易服务器发送的行情网络数据报文。
参照图2,示出了本申请一个可选实施例提供的一种基于组播的行情信息推送方法的步骤流程图。具体而言,本申请实施例提供的基于组播的行情信息推送方法可以应用于行情信息推送系统中,如图2所示,具体可以包括如下步骤:
步骤201,接收客户端发送的用户登录请求。
具体的,用户登录请求可以表示用户通过客户端发送的登录请求,具体可以携带有用户的订阅信息。
步骤202,依据所述用户登录请求确定组播订阅配置信息,所述组播订阅配置信息包含第一组播配置参数和订阅配置参数。
其中,所述第一组播配置参数用于配置行情接收单元的组播地址和端口,所述行情接收单元用于接收所述行情网络数据报文;订阅配置参数可以用于配置用户订阅模块,使得用户订阅模块能够基于该订阅配置参数对接收到的行情消息数据进行订阅过滤。进一步的,本申请实施例依据所述用户登录请求确定组播订阅配置信息,具体可以包括如下子步骤:
子步骤2021,从所述用户登录请求中提取用户的订阅信息;
子步骤2022,基于所述用户的订阅信息确定所述组播订阅配置信息。
具体而言,本申请实施例在接收到用户登录请求后,可以通过该该用户登录请求进行解析,得到该用户请求所携带的订阅信息,即通过解析,从用户登录请求中提取出用户的订阅信息,随后可基于该用户登录请求携带的订阅信息确定组播订阅配置参数,以根据该组播订阅配置参数进行配置,如可以基于组播订阅配置参数中的第一组播配置参数配置行情接收的组播IP地址和端口到行情接收单元,和/或,可基于组播订阅配置参数中的订阅配置参数将用户的订阅参数配置到订阅单元中的用户订阅模块等,本申请实施例对此不作具体限制。
步骤203,依据第一组播配置参数,接收交易服务器发送的行情网络数据报文。
具体的,本申请实施例在依据用户登录请求将行情接收的组播IP地址和端口配置到行情接收单元后,可以依据第一组播配置参数,通过行情接收单元接收交易服务器发送的行情网络数据报文。
例如,在行情信息推送系统可以包括有管理主机(Host系统)和FPGA平台的情况下,如图3所示,若用户通过客户端A1向管理主机发送登陆请求后,则该管理主机可以根据该登录请求进行登录管理和参数配置,如可以根据登录请求将用户的订阅信息配置到FPGA平台中,使得FPGA平台可以依据该用户的订阅信息确定对应的组播订阅配置信息,并可基于该组播订阅配置信息中的第一组播配置参数配置行情接收的组播IP地址和端口到行情接收单元,使得行情接收单元可以依据第一组播配置参数,通过行情接收的组播IP地址和端口接收交易服务器发送的行情网络数据报文。
需要说明的是,FPGA是一种可编程的半定制电路,内部包含可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核等功能单元。因为可编程,可重构,FPGA平台可以具有极大的并行处理能力,非常适应于金融行业对低延时加速领域,实现对行情数据的实时高速处理和提升系统性能。
步骤204,根据所述交易服务器的行情数据接口协议,从接收到的行情网络数据报文提取出各类型的行情数据。
其中,交易服务器的行情数据接口协议可以是交易服务器所提供的行情数据接口协议,具体可以用于对交易服务器发出的行情网络数据报文进行行情解析,以从该行情网络数据报文提取出各类型的行情数据。例如,如图2所示,FPGA平台中的行情接收单元可以依据第一组播配置参数,通过调用xilinx PHY IP接收交易服务器发送的行情网络数据报文,并在接收到行情网络数据报文后,可以通过FPGA平台中的行情解析重组单元,根据行情数据接口协议,从行情网络数据报文中解析出证券行情数据。例如,如图4所示,在行情网络数据报文包含有行数据字段的情况下,证券行情数据可以在行情网络数据报文的行情数据字段中。当然,行情网络数据报文除了可以包含有行情数据字段之外,还可以包含有其他字段,如前导码字段、帧开始字段、目的地址字段、源地址字段、类型字段、IP首部字段、FCS字段等,本示例对此不作限制。
步骤205,对所述各类型的行情数据进行重组处理,得到行情消息数据。
具体的,本申请实施例可以根据交易服务器的行情数据接口协议,对接收到行情网络数据报文进行情解析,以从行情网络数据报文中提取各种类型的行情数据,随后可按按适合客户端接收的格式对提取到的各种类型的行情数据进行行情重组,得到行情消息数据,且该行情消息数据符合客户端接收的格式,从而能够方便客户端接收解析,降低客户端数据处理延时,提高行情刷新效率。
进一步而言,本申请实施例提供的基于组播的行情信息推送方法还可以还包括:基于所述客户端的数据接收格式确定行情消息数据格式。其中,客户端的数据接收格式可以是指客户端接收的数据格式。
具体的,本申请实施例可以将客户端的数据接收格式确定为行情消息数据格式,以便后续可以基于行情消息数据格式对述各类型的行情数据进行重新排列输出,得到符合客户端接收的数据格式的行情消息数据。可选的,本申请实施例对所述各类型的行情数据进行重组处理,具体可以包括:将所述各类型的行情数据按照所述行情消息数据格式进行重组。
作为本申请的一个示例,在行情网络数据报文为证券交易所通过交易服务器发出的证券行情数据报文的情况下,通过根据交易服务器的行情数据接口协议进行行情解析,可以从该证券行情数据报文提取各种类型的行情数据,如包括诸指数行情、快照行情、逐笔委托、逐笔成交等行情数据。随后通过行情重组,可以将行情数据按适合客户端接收的格式重新排列输出,即输出符合行情消息数据格式的行情消息数据,从而可以方便客户端接收和解析行情消息数据。其中,行情消息数据格式可以是指客户端接收消息的数据格式,如可以是逐笔委托类型的行情消息数据格式等,本示例对此不作限制。需要说明的是,逐笔委托类型的行情消息数据格式可以包括有:消息头、消息流水号、交易所证券代码、市场、数据生成时间、交易通道号、委托号、买卖方、委托价格、委托数量以及委托类型等字段。
步骤206,将所述行情消息数据输入到至少两个用户订阅模块。
步骤207,在每一个用户订阅模块中,基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,得到每一个用户订阅模块对应的订阅行情数据。
在实际处理中,可以根据用户订阅模块的数量,将行情消息数据扩展成多路,同时可以通过每一路径上的用户订阅模块对行情消息数据进行订阅过滤,以实现对每路径上的行情进行订阅,得到每一个用户订阅模块对应输出的订阅行情数据。例如,结合上述例子,在FPGA平台的订阅单元包含48个用户模块的情况下,可以利用FPGA并行处理特点,通过行情数据接口将行情消息数据扩展至48路,如图5所示,同时可以通过每一路径上的用户订阅模块依据对应配置的订阅类型参数对该路径上的行情消息数据进行订阅过滤,以实现对每路径上的行情进行订阅,得到每一个用户订阅模块对应的订阅行情数据,从而实现了用户订阅模块的订阅功能。其中,订阅功能可按行情类型订阅和/或证券代码订阅实现,本示例对此不作具体限制。需要说明的是,订阅类型参数可以通过订阅配置接口传输给订阅单元的订阅配置模块,以通过该订阅配置模块将各个用户订阅模块对应的订阅类型参数配置到响应用户订阅模块,进而使得用户订阅模块依据对应配置的订阅类型参数对该路径上的行情消息数据进行订阅过滤。
在一种可选实施方式中,本申请实施例中的订阅类型参数可以包含行情类型参数,所述行情类型参数可以用于配置所述用户订阅模块对应的行情类型,从而使得用户订阅模块可以按行情类型订阅实现订阅功能。其中,行情类型订阅可以是指通过判断每条行情消息数据的消息头(MsgHead)中的消息类型(MsgType)来选择是否输出。进一步而言,本申请实施例基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,具体可以包括如下子步骤:
子步骤2071,从所述行情消息数据中提取消息头字段;
子步骤2072,依据所述消息头字段确定所述行情消息数据的消息类型;
子步骤2073,若所述消息类型符合所述用户订阅模块对应的行情类型,则将所述行情消息数据确定为用户订阅模块对应的订阅行情数据;否则,丢弃所述行情消息数据。
其中,用户订阅模块对应的行情类型可以表示在预先该用户订阅模块配置的订阅类型,如可以是用户配置的订阅类型。具体的,本申请实施例中的每一个用户订阅模块在获取到行情消息数据后,可以从该行情消息数据中提取出消息头字段,以根据该消息头字段中的消息类型数据确定出确定该行情消息数据的消息类型,从而可以将该行情消息数据的消息类型与该用户订阅模块预先对应配置的行情类型进行比较,以确定该行情消息数据的消息类型是否符合用户订阅模块对应的行情类型。若行情消息数据的消息类型属于用户订阅模块对应的行情类型,即行情消息数据的消息类型在用户配置的订阅类型范围内,则可以确定该行情消息数据的消息类型符合用户订阅模块对应的行情类型,随后可通过用户订阅模块将该行情消息数据输出,以将该行情消息数据确定为用户订阅模块对应的订阅行情数据。
例如,在行情消息数据的消息头(MsgHead)字段包含当前消息类型(MsgType)的情况下,如图6所示,可以基于用户订阅模块对应配置的行情类型参数,将MsgHead中包含的消息类型与用户订阅模块预先配置的行情类型进行比较,以在MsgHead中包含的消息类型与用户订阅模块预先配置的行情类型相同时,即在MsgHead中包含的消息类型符合用户配置的订阅类型时,确定该行情消息数据有效,随后可将该行情消息数据输出,以作为用户订阅模块对应的订阅行情数据。若MsgHead中包含的消息类型与用户订阅模块预先配置的行情类型不一致时,即在MsgHead中包含的消息类型不符合用户配置的订阅类型时,则可以丢弃该行情消息数据,即不对该行情消息数据进行输出。其中,MsgHead字段除了可以包含有消息类型之外,还可以包含其他信息,如固定字节、消息长度、消息版本等,本申请示例对此不作限制。
当然,本申请实施例还可以通过其他方式对行情消息数据进行订阅过滤,如可以按业务标识订阅方式实现用户订阅模块的订阅功能等,本申请实施例对此不作具体限制。例如,在订阅类型参数包含证券代码和类型参数的情况下,可以通过证券代码和类型参数实现订阅功能,具体的,用户订阅模块可以基于订阅类型参数中所包含包含证券代码和类型参数,指定用户所需的多个特定证券代码进行订阅,进而可以从行情数据中所包含的上万个证券代码中选中其中用户订阅的一部分或全部证券代码对应的证券行情信息进行输出。
进一步而言,在一个可选实施方式中,本申请实施例基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,具体可以包括如下子步骤:
子步骤2074,从所述行情消息数据中提取业务标识字段;
子步骤2075,依据所述业务标识字段进行地址转换,得到目标存储地址;
子步骤2076,从所述目标存储地址中读取所述用户订阅模块的订阅类型参数;
子步骤2077,若所述行情消息数据的消息类型与所述订阅类型参数相匹配,则将所述行情消息数据确定为用户订阅模块对应的订阅行情数据;否则,丢弃所述行情消息数据。
具体的,本申请实例中的用户订阅模块在接收行情消息数据后,可以从该行情消息数据中提取出业务标识字段,以根据该业务标识字段中的业务标识,通过地址转换,将该业务标识字段中的业务标识转换成对应匹配的存储地址,随后可将对应匹配的存储地址作为目标存储地址。其中,行情消息数据可以携带有业务标识字段,且业务标识字段可以用于添加业务标识,如在行情消息数据的业务标识字段为证券代码字段时,可以通过该证券代码字段将该行情消息数据对应的证券代码添加到行情消息数据,使得行情消息数据可以携带有对应的证券代码,以便后续用户订阅模块可以依据该行情消息数据携带的证券代码进行地址转换,得到目标存储地址。进一步而言,本申请实施例依据所述业务标识字段进行地址转换,得到目标存储地址,具体可以包括:确定所述业务标识字段包含的证券代码;将所述证券代码转换为所述目标存储地址。
在得到目标存储地址后,可以从该目标存储地址中读取用户订阅模块的订阅类型参数,以根据该用户订阅模块的订阅类型参数,与当前接收到的行情消息数据的消息头进行类型匹配;若当前接收到的行情消息数据的消息头携带的消息类型与用户订阅模块的订阅类型参数相匹配,如在当前接收到的行情消息数据的消息头携带的消息类型与用户订阅模块的订阅类型参数中的类型参数相同时,即在行情消息数据的消息类型与用户订阅模块的订阅类型相匹配时,则用户订阅模块可以将所述行情消息数据输出,以作为用户订阅模块对应的订阅行情数据;若当前接收到的行情消息数据的消息头携带的消息类型与用户订阅模块的订阅类型参数不匹配,即在行情消息数据的消息类型与用户订阅模块的订阅类型不匹配时,则用户订阅模块可以不对行情消息数据输出,以丢弃该行情消息数据。
进一步而言,本申请实施例依据基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,还可以包括:依据所述订阅类型参数确定订阅类型;从所述行情消息数据中提取消息头字段,并依据所述消息头字段确定所述行情消息数据的消息类型;判断所述行情消息数据的消息类型是否与所述订阅类型相匹配;若所述行情消息数据的消息类型与所述订阅类型相匹配,则确定所述行情消息数据的消息类型与所述订阅类型参数相匹配;若所述行情消息数据的消息类型与所述订阅类型不匹配,则确定所述行情消息数据的消息类型与所述订阅类型参数不匹配。
例如,如图7所示,用户订阅模块可以从行情消息数据的证券代码字段中将16字节数据提取出来,以作为证券代码,随后可通过证券代码转换成对应匹配的随机存取存储器(RAM)地址,以作为目标存储地址,从而可以去读取存放在RAM中的该证券代码的配置的订阅类型参数,再与当前行情消息数据的消息头的MsgType进行类型匹配;若当前行情消息数据的消息头的MsgType符合用户配置的订阅类型,则可以确定该条行情消息数据有效,随后可通过用户订阅模块对该行情消息数据进行输出,以作为用户订阅模块对应的订阅行情数据;若当前行情消息数据的消息头的MsgType不符合用户配置的订阅类型,则用户订阅模块可以不输出该条行情消息数据,从而实现订阅过滤功能。
步骤280,对每一个用户订阅模块对应的订阅行情数据进行封装,以将封装后得到的行情数据报文推送给对应组播域中的客户端。
其中,所述组播域与所述用户订阅模块一一对应。
进一步的,本申请实施例对每一个用户订阅模块对应的订阅行情数据进行封装,并将封装后得到的行情数据报文发送给对应组播域中的客户端,具体可以如下子步骤包括:
子步骤2801,针对每一个用户订阅模块对应的订阅行情数据,通过与所述用户订阅模块对应连接的组播推送模块进行封装,得到所述行情数据报文;
子步骤2802,通过所述组播推送模块配置的组播地址和端口,对所述行情数据报文进行推送,以将所述行情数据报文发送给对应组播域中的客户端。
具体的,本申请实施例中的用户订阅模块的数量与组播推送模块的数量相同,且用户订阅模块与组播推送模块一一对应连接。在实际处理中,可以根据组播订阅配置信息预先配置组播推送模块的组播地址和端口,使得组播推送模块可以通过预先配置的组播地址和端口对用户订阅模块对应的行情数据报文进行组播推送。可选的,本申请实施例中的组播订阅配置信息还可以包含第二组播配置参数;所述第二组播配置参数用于配置所述组播推送模块的组播地址和端口;所述组播推送模块用于按照网络组播协议对所述订阅行情数据进行报文封装。
具体而言,在用户订阅模块输出对应的订阅行情数据后,与该用户订阅模块对应连接的组播推送模块,可按照网络组播协议进行报文封装,并可按照预设的第二组播配置参数,通过PHY IP接口将封装后得到的行情数据报文推送到推出到网络中,即通过所述组播推送模块配置的组播地址和端口,对行情数据报文进行推送,以将行情数据报文发送给对应组播域中的客户端。
作为本申请的一个示例,可以在FPGAP平台上设计了48个独立的组播推送模块,如图2所示,以通过48个组播推送模块与订阅单元中的48个独立的组播推送模块分别一一对应连接,如组播推送模块1可以与订阅单元中的组播推送模块1对应连接,使得组播推送模块1可以按照网络组播协议对用户订阅模块2输出的订阅行情数据进行报文封装,并将封装后得到的行情数据报文通过组播推送方式进行发送,使得组播1中的客户端A1、客户端A3、客户端A3等可以接收到行情数据报文;组播推送模块2可以与订阅单元中的组播推送模块2对应连接,使得组播推送模块2可以按照网络组播协议对用户订阅模块2输出的订阅行情数据进行报文封装,并将封装后得到的行情数据报文通过组播推送方式进行发送,使得组播2中的客户端B1、客户端B3、客户端B3等可以接收到行情数据报文;组播推送模块3可以与订阅单元中的组播推送模块3对应连接,使得组播推送模块3可以按照网络组播协议对在用户订阅模块3输出对应的订阅行情数据进行报文封装,并将封装后得到的行情数据报文通过组播推送方式进行发送,使得组播3中的客户端B1、客户端B3、客户端B3等可以接收到行情数据报文……如此类推,组播推送模块48可以与订阅单元中的组播推送模块48对应连接,使得组播推送模块48可以按照网络组播协议对用户订阅模块48输出的订阅行情数据进行报文封装,并将封装后得到的行情数据报文通过组播推送方式进行发送,使得组播48中的各个客户端可以接收到行情数据报文。
综上,本申请实施例可以根据用户登录请求将用户的订阅信息确定组播订阅配置信息,并可基于该组播订阅配置信息中的第一组播配置参数将行情接收的组播IP地址和端口到行情接收单元,使得行情接收单元可以依据第一组播配置参数,通过行情接收的组播IP地址和端口接收交易服务器发送的行情网络数据报文,并可依据行情网络数据报文通过行情解析重组,得到行情消息数据,随后可通过订阅单元中的用户订阅模块,依据预设的订阅配置参数对该行情消息数据进行过滤处理,得到各个用户订阅模块对应输出的订阅行情数据,随后可通过与用户订阅模块对应连接的组播推送模块,分别对每一个用户订阅模块对应输出的订阅行情数据进行封装,以将封装后得到的行情数据报文通过组播推送的方式发送给对应组播域中的客户端,实现了通过组播订阅推送行情数据,即利用组播的优势,支持多个客户同时接收证券行情,减少点对点的TCP连接,降低网络行情数据冗余,提高系统性能。
此外,本申请实施例可以通过将行情消息数据输入到至少两个用户订阅模块,以通过不同的用户订阅模块对行情消息数据进行过滤处理,从而能够同时同时对不同的组播域进行证券行情选择推送,减少证券行情数据量,降低客户端数据处理延时,提高行情刷新效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。
参照图8,示出了本申请实施例中的一种基于组播的行情信息推送系统的结构框图,该基于组播的行情信息推送系统具体可以包括如下单元:
行情解析重组单元810,用于依据接收到的行情网络数据报文,确定行情消息数据;
订阅单元820,用于依据预设的订阅配置参数对所述行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据;
组播推送单元830,用于对每一个用户订阅模块对应的订阅行情数据进行封装,以将封装后得到的行情数据报文推送给对应组播域中的客户端,其中,所述组播域与所述用户订阅模块一一对应。
可选的,所述预设的订阅配置参数包含各个用户订阅模块对应配置的订阅类型参数;所述订阅单元820,具体可以用于将所述行情消息数据输入到至少两个用户订阅模块,以在每一个用户订阅模块中,基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,得到每一个用户订阅模块对应的订阅行情数据。
可选的,所述订阅类型参数包含行情类型参数,所述行情类型参数用于配置所述用户订阅模块对应的行情类型。订阅单元820基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,具体可以包括:通过用户订阅模块,从所述行情消息数据中提取消息头字段;依据所述消息头字段确定所述行情消息数据的消息类型;若所述消息类型符合所述用户订阅模块对应的行情类型,则将所述行情消息数据确定为用户订阅模块对应的订阅行情数据;否则,丢弃所述行情消息数据。
可选的,订阅单元820基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,具体可以包括:通过用户订阅模块,从所述行情消息数据中提取业务标识字段;依据所述业务标识字段进行地址转换,得到目标存储地址;从所述目标存储地址中读取所述用户订阅模块的订阅类型参数;若所述行情消息数据的消息类型与所述订阅类型参数相匹配,则将所述行情消息数据确定为用户订阅模块对应的订阅行情数据;否则,丢弃所述行情消息数据。
可选的,所述用户订阅模块依据所述业务标识字段进行地址转换,得到目标存储地址,具体可以包括:确定所述业务标识字段包含的证券代码;将所述证券代码转换为所述目标存储地址。
可选的,订阅单元820基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,还可以包括:通过用户订阅模块,依据所述订阅类型参数确定订阅类型;从所述行情消息数据中提取消息头字段,并依据所述消息头字段确定所述行情消息数据的消息类型;判断所述行情消息数据的消息类型是否与所述订阅类型相匹配;若所述行情消息数据的消息类型与所述订阅类型相匹配,则确定所述行情消息数据的消息类型与所述订阅类型参数相匹配;若所述行情消息数据的消息类型与所述订阅类型不匹配,则确定所述行情消息数据的消息类型与所述订阅类型参数不匹配。
可选的,上述行情信息推送系统还包括:行情接收单元。该行情接收单元可以用于依据预设的第一组播配置参数,接收交易服务器发送的行情网络数据报文。
其中,所述行情解析重组单元810可以包括如下模块:
行情解析模块,用于根据所述交易服务器的行情数据接口协议,从接收到的行情网络数据报文提取出各类型的行情数据;
行情重组模块,用于对所述各类型的行情数据进行重组处理,得到行情消息数据。
可选的,上述行情信息推送系统还包括:管理单元,可以用于接收客户端发送的用户登录请求;依据所述用户登录请求确定组播订阅配置信息。所述组播订阅配置信息包含所述第一组播配置参数和所述订阅配置参数,所述第一组播配置参数用于配置行情接收单元的组播地址和端口,所述行情接收单元用于接收所述行情网络数据报文。
在具体实现中,该管理单元可以作为行情信息推送系统中的管理主机,如图3所示,在用户通过客户端向管理主机发送用户登陆请求后,作为管理主机的管理单元可以接收该用户登录请求,并可依据用户登录请求确定组播订阅配置信息,以将相应参数配置到FPGA平台,使得FPGA可以配置行情接收的组播IP和端口到行情接收单元,并可配置用户订阅参数到订阅单元的用户订阅模块中,如配置配置用户1的订阅参数到用户订阅模块1中,以及可以配置需要推送行情的组播IP和端口到组播推送模块1中等。
可选额,所述管理单元依据所述用户登录请求确定组播订阅配置信息,具体可以包括:从所述用户登录请求中提取用户的订阅信息;基于所述用户的订阅信息确定所述组播订阅配置信息。
可选的,管理单元还可以用于基于所述客户端的数据接收格式确定行情消息数据格式。其中,所述行情重组模块具体可以用于:将所述各类型的行情数据按照所述行情消息数据格式进行重组。
可选的,组播推送单元830具体可以用于:针对每一个用户订阅模块对应的订阅行情数据,通过与所述用户订阅模块对应连接的组播推送模块进行封装,得到所述行情数据报文;通过所述组播推送模块配置的组播地址和端口,对所述行情数据报文进行推送,以将所述行情数据报文发送给对应组播域中的客户端。
可选的,所述组播订阅配置信息还包含第二组播配置参数;所述第二组播配置参数用于配置所述组播推送模块的组播地址和端口;所述组播推送模块用于按照网络组播协议对所述订阅行情数据进行报文封装。
需要说明的是,上述提供的基于组播的行情信息推送系统可执行本申请任意实施例所提供的基于组播的行情信息推送方法,具备执行方法相应的功能和有益效果。
作为本申请的一个可选示例,可以利用申请提供的基于组播行情信息推送系统实现组播证券订阅系统,如图3所示。该组播证券订阅系统可以包含交易服务器、基于组播行情信息推送系统以及多个客户端。其中,基于组播行情信息推送系统可以采用xilinx的FPGA平台和管理主机组成,相互之间可以通过PCIE高速通讯接口进行通信。管理主机可以交易服务器进行用户数据交互,以及可以基于客户端发送的登录请求实现登录管理。例如,在用户1通过客户端A1向管理主机发送登陆请求的情况下,该管理主机可以依据登录请求将用户1的订阅信息配置到FPGA平台中,使得FPGA平台配置行情接收的组播IP和端口到行情接收单元,配置用户1的订阅参数到订阅单元中用户订阅模块1中,配置需要推送行情的组播IP和端口到组播推送模块1中。
在FPGA平台通过行情接收单元根据行情源的组播IP和端口接收行情源(即交易服务器)发出的证券行情网络数据后,可以将该证券行情网络数据作为行情网络数据报文行网络IP报文解析,以将该证券行情网络数据中的证券行情数据提取出来,并可根据交易服务器的行情数据接口协议,将证券行情数据解析各种类型的逐条行情消息,同时可以通过行情重组模块将各种类型的行情消息按一定格式重新组合输出,得到行情消息数据。随后可通过订阅单元将一路行情消息数据,扩展多路输入至每个独立的用户订阅模块,使得每一个用户订阅模块中基于对应配置的订阅类型参数对行情消息数据进行订阅过滤,得到每一个用户订阅模块对应的订阅行情数据。
例如,用户1通过客户端A1配置用户订阅模块1,则用户订阅模块1使用的是用户1配置的的订阅类型参数。具体的,在用户订阅模块1中,可以根据重组后推出的行情消息数据的数据格式,利用行情行情消息数据中的消息头携带的消息类型和证券代码作条件,对行情消息数据进行过滤处理。
若按行情类型订阅,则可以通过识别行情消息数据的MsgHead中消息类型与用户配置的订阅类型作比较,从而可以在该行情消息数据的消息类型符合订阅配置的行情类型时确定该行情消息数据有效输出,以作为用户订阅模块1对应的订阅行情数据,否则可以确定该该情消息数据无效,从而可以不输出该行情消息数据。
若按证券代码订阅,则可以通过提取该行情消息消息中的证券代码,再根据代码转换成对应RAM地址,以通过RAM地址读取RAM中配置的该证券代码订阅类型参数,随后与该行情消息数据中的MsgHead携带的消息类型作比较;若匹配证券代码配置订阅类型,则该行情消息数据有效输出,以作为用户订阅模块1对应的订阅行情数据。若该行情消息MsgHead中消息类型并未匹配证券代码配置订阅类型参数中,则该条行情消息数据无效,不推送。
在用户订阅模块1 中输出的订阅行情数据情况下,可以通过与该用户订阅模块1连接的组播推送模块1,对订阅行情数据按配置的组播IP报文进封装,再发送至网络中,由客户端A1接收。
若客户端A2的订阅参数与客户端A1的订阅参数相同,则客户端A2可以直接加入该客户端A1所在的推送组播域,从而可以可直接使用组播推送模块1所发送的行情数据。
若新用户2通过客户端B1,向管理主机发送登陆请求,则通过管理主机将用户2的订阅参数配置到用户订阅模块2中,同时可以配置需要推送行情的组播IP和端口到组播推送模块2中,使得订阅的行情数据可以经过用户订阅模块2、组播推送2输出到网络中,由客户端B1接收。
以此类推,其它48条路径亦可同时进行订阅推送。
可见,本示例可以利用FPGA并行优点,将证券行情数据扩展多路,能同时进行推送,降低传统方案轮询发送行情数据至多路的处理时间;并且可以通过用户订阅模块对每条路径上的证券行情数据进行订阅,从而可选择行情类型推送,或者选择一篮子证券代码(股票)推送,与现有推送所有证券行情的行情解析系统相比,本示例的行情信息推送系统能够大大减少推送的数据量,如全市场超过2万个证券代码的行情数据的情况下,若订阅400个股票的所有行情类型数据,则推送的行情数据量减少98%,极大的降低推送网络中行情数据量。
此外,本示例中的客户端可以采用订阅方式接收行情数据时,接收的行情数据量比接收全行情数据量减少,从而可以提高客户端行情数据处理效率,降低处理延时。
综上,本示例将行情数据按组播域推送,以利用组播技术特点,使得所有加入该组播域中的客户端都能接收到该行情数据,如在本示例中的行情信息推送系统支持48个不同的组播域配置的情况下,若1个组播域同时有10个客户端接收推送的行情数据,则该行情信息推送系统一条路径上的证券行情数据最大可以支持480个客户同时接收证券行情数据,相比传统1对1的推送模式,大大提高证券行情的推送效率,减少网络中推送的重复行情数数据。
在具体实现中,上述基于组播的行情信息推送系统可以应用在设备中,使得该设备可以基于组播进行行情信息推送,以作为基于组播的行情信息推送设备,该设备可以是由两个或多个物理实体构成,也可以是一个物理实体构成,如设备可以是个人计算机(Personal Computer,PC)、电脑、服务器等,本申请实施例对此不作具体限制。
如图9所示,本申请实施例提供提供了一种基于组播的行情信息推送设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信,存储器113,用于存放计算机程序;
在本申请一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例所述的基于组播的行情信息推送方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任意一个方法实施例提供的基于组播的行情信息推送方法的步骤。
需要说明的是,对于系统、机房空调、存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (13)
1.一种基于组播的行情信息推送方法,其特征在于,包括:
依据接收到的行情网络数据报文,确定行情消息数据;
依据预设的订阅配置参数对所述行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据;
对每一个用户订阅模块对应的订阅行情数据进行封装,并将封装后得到的行情数据报文发送给对应组播域中的客户端,其中,所述组播域与所述用户订阅模块一一对应;
其中,所述预设的订阅配置参数包含各个用户订阅模块对应配置的订阅类型参数,所述依据预设的订阅配置参数对所述行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据,包括:
将所述行情消息数据输入到至少两个用户订阅模块;
在每一个用户订阅模块中,基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,得到每一个用户订阅模块对应的订阅行情数据;
所述基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,包括:从所述行情消息数据中提取业务标识字段;依据所述业务标识字段进行地址转换,得到目标存储地址;从所述目标存储地址中读取所述用户订阅模块的订阅类型参数;若所述行情消息数据的消息类型与所述订阅类型参数相匹配,则将所述行情消息数据确定为用户订阅模块对应的订阅行情数据;否则,丢弃所述行情消息数据。
2.根据权利要求1所述的基于组播的行情信息推送方法,其特征在于,所述订阅类型参数包含行情类型参数,所述行情类型参数用于配置所述用户订阅模块对应的行情类型,所述基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,还包括:
从所述行情消息数据中提取消息头字段;
依据所述消息头字段确定所述行情消息数据的消息类型;
若所述消息类型符合所述用户订阅模块对应的行情类型,则将所述行情消息数据确定为用户订阅模块对应的订阅行情数据;否则,丢弃所述行情消息数据。
3.根据权利要求1所述的基于组播的行情信息推送方法,其特征在于,所述依据所述业务标识字段进行地址转换,得到目标存储地址,包括:
确定所述业务标识字段包含的证券代码;
将所述证券代码转换为所述目标存储地址。
4.根据权利要求1所述的基于组播的行情信息推送方法,其特征在于,所述基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,还包括:
依据所述订阅类型参数确定订阅类型;
从所述行情消息数据中提取消息头字段,并依据所述消息头字段确定所述行情消息数据的消息类型;
判断所述行情消息数据的消息类型是否与所述订阅类型相匹配;
若所述行情消息数据的消息类型与所述订阅类型相匹配,则确定所述行情消息数据的消息类型与所述订阅类型参数相匹配;
若所述行情消息数据的消息类型与所述订阅类型不匹配,则确定所述行情消息数据的消息类型与所述订阅类型参数不匹配。
5.根据权利要求1至4任一所述的基于组播的行情信息推送方法,其特征在于,还包括:
依据预设的第一组播配置参数,接收交易服务器发送的行情网络数据报文;
其中,所述依据接收到的行情网络数据报文,确定行情消息数据,包括:
根据所述交易服务器的行情数据接口协议,从接收到的行情网络数据报文提取出各类型的行情数据;
对所述各类型的行情数据进行重组处理,得到行情消息数据。
6.根据权利要求5所述的基于组播的行情信息推送方法,其特征在于,还包括:
接收客户端发送的用户登录请求;
依据所述用户登录请求确定组播订阅配置信息,所述组播订阅配置信息包含所述第一组播配置参数和所述订阅配置参数,所述第一组播配置参数用于配置行情接收单元的组播地址和端口,所述行情接收单元用于接收所述行情网络数据报文。
7.根据权利要求6所述的基于组播的行情信息推送方法,其特征在于,所述依据所述用户登录请求确定组播订阅配置信息,包括:
从所述用户登录请求中提取用户的订阅信息;
基于所述用户的订阅信息确定所述组播订阅配置信息。
8.根据权利要求6所述的基于组播的行情信息推送方法,其特征在于,还包括:
基于所述客户端的数据接收格式确定行情消息数据格式;
其中,所述对所述各类型的行情数据进行重组处理,包括:将所述各类型的行情数据按照所述行情消息数据格式进行重组。
9.根据权利要求1至4任一所述的基于组播的行情信息推送方法,其特征在于,所述对每一个用户订阅模块对应的订阅行情数据进行封装,并将封装后得到的行情数据报文发送给对应组播域中的客户端,包括:
针对每一个用户订阅模块对应的订阅行情数据,通过与所述用户订阅模块对应连接的组播推送模块进行封装,得到所述行情数据报文;
通过所述组播推送模块配置的组播地址和端口,对所述行情数据报文进行推送,以将所述行情数据报文发送给对应组播域中的客户端。
10.根据权利要求9所述的基于组播的行情信息推送方法,其特征在于,
所述组播订阅配置信息还包含第二组播配置参数;
所述第二组播配置参数用于配置所述组播推送模块的组播地址和端口;
所述组播推送模块用于按照网络组播协议对所述订阅行情数据进行报文封装。
11.一种基于组播的行情信息推送系统,其特征在于,包括:
行情解析重组单元,用于依据接收到的行情网络数据报文,确定行情消息数据;
订阅单元,用于依据预设的订阅配置参数对所述行情消息数据进行过滤处理,得到至少两个用户订阅模块对应的订阅行情数据;
组播推送单元,用于对每一个用户订阅模块对应的订阅行情数据进行封装,以将封装后得到的行情数据报文推送给对应组播域中的客户端,其中,所述组播域与所述用户订阅模块一一对应;
其中,所述预设的订阅配置参数包含各个用户订阅模式对应配置的订阅类型参数;所述订阅单元具体用于将所述行情消息数据输入到至少两个用户订阅模块,以在每一个用户订阅模块中,基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,得到每一个用户订阅模块对应的订阅行情数据;
所述基于所述用户订阅模块对应配置的订阅类型参数对所述行情消息数据进行订阅过滤,包括:从所述行情消息数据中提取业务标识字段;依据所述业务标识字段进行地址转换,得到目标存储地址;从所述目标存储地址中读取所述用户订阅模块的订阅类型参数;若所述行情消息数据的消息类型与所述订阅类型参数相匹配,则将所述行情消息数据确定为用户订阅模块对应的订阅行情数据;否则,丢弃所述行情消息数据。
12.一种基于组播的行情信息推送设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-10任一项所述的基于组播的行情信息推送方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-10任一项所述的基于组播的行情信息推送方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110749088.7A CN113193974B (zh) | 2021-07-02 | 2021-07-02 | 基于组播的行情信息推送方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110749088.7A CN113193974B (zh) | 2021-07-02 | 2021-07-02 | 基于组播的行情信息推送方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113193974A CN113193974A (zh) | 2021-07-30 |
CN113193974B true CN113193974B (zh) | 2021-11-09 |
Family
ID=76976978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110749088.7A Active CN113193974B (zh) | 2021-07-02 | 2021-07-02 | 基于组播的行情信息推送方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113193974B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115222538B (zh) * | 2022-08-15 | 2022-12-13 | 深圳星云智联科技有限公司 | 行情快照数据计算方法、装置、电子设备和存储介质 |
CN115114222B (zh) * | 2022-08-30 | 2022-12-27 | 珠海星云智联科技有限公司 | 行情快照分发方法及相关装置 |
CN115129654B (zh) * | 2022-08-31 | 2022-11-18 | 珠海星云智联科技有限公司 | 行情快照处理方法及相关装置 |
CN118041831B (zh) * | 2024-04-11 | 2024-06-18 | 深圳华云信息系统科技股份有限公司 | 行情消息的延时测量方法、装置、设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857585A (zh) * | 2020-07-10 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 存储系统自定义业务功能配置方法、装置、设备及介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8850451B2 (en) * | 2006-12-12 | 2014-09-30 | International Business Machines Corporation | Subscribing for application messages in a multicast messaging environment |
CN102663007B (zh) * | 2012-03-20 | 2013-12-18 | 广东电子工业研究院有限公司 | 一种支持敏捷开发和横向扩展的数据存储与查询方法 |
CN107067325A (zh) * | 2017-04-18 | 2017-08-18 | 湖南福米信息科技有限责任公司 | 股票行情数据的过滤方法、过滤装置和推送系统 |
CN110517136A (zh) * | 2019-07-30 | 2019-11-29 | 上海兮通信息科技有限公司 | 一种证券行情加速处理方法及系统 |
CN111314217B (zh) * | 2019-12-09 | 2021-12-17 | 上海金融期货信息技术有限公司 | 一种多链路传输系统 |
CN111104594A (zh) * | 2019-12-12 | 2020-05-05 | 上海金纳信息科技有限公司 | 行情推送方法及装置 |
CN112487337A (zh) * | 2020-12-10 | 2021-03-12 | 盛立金融软件开发(杭州)有限公司 | 一种行情数据交互装置、方法及设备 |
CN112650499A (zh) * | 2020-12-29 | 2021-04-13 | 国泰君安证券股份有限公司 | 基于OpenCL平台实现对交易所level-2 FAST行情的硬件解码处理的系统 |
-
2021
- 2021-07-02 CN CN202110749088.7A patent/CN113193974B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857585A (zh) * | 2020-07-10 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 存储系统自定义业务功能配置方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113193974A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113193974B (zh) | 基于组播的行情信息推送方法、系统、设备及介质 | |
EP3654192B1 (en) | Configuration management method, apparatus and device | |
CN111294399B (zh) | 一种数据传输方法和装置 | |
CA2168351C (en) | Method and apparatus for connecting a node to a wireless network using a standard protocol | |
CN108513283A (zh) | 一种配网方法、设备、终端、介质及计算机设备 | |
WO2013102335A1 (zh) | 一种网关握手、通信方法、网关及Web通信系统 | |
CN108769017B (zh) | 一种数据通信方法及装置 | |
WO2015070540A1 (zh) | 一种终端的配对方法、终端及系统 | |
CN110677432A (zh) | 一种网络协议内部代理转发方法、装置、介质及终端设备 | |
US10701189B2 (en) | Data transmission method and apparatus | |
JP2013546261A (ja) | モバイルインターネットサービスの実現方法、ゲートウェイ、プロキシ及びシステム | |
CN108712289B (zh) | 采用硬件实现的tte端系统网络管理装置 | |
CN113489652A (zh) | 一种数据流放大方法、装置、汇聚分流器以及存储介质 | |
CN103379182A (zh) | 数据传输方法和客户端 | |
CN115297098B (zh) | 边缘服务获取方法和装置、边缘计算系统、介质、设备 | |
CN114679407A (zh) | 一种链路聚合方法、装置、设备、存储介质 | |
CN101083636A (zh) | 互联网邮件业务与移动应用互通的实现方法、设备及系统 | |
CN108809549B (zh) | 一种传输数据的方法及设备 | |
CN106487690A (zh) | 数据发送方法及装置 | |
CN104702596A (zh) | 一种基于数据包长度的信息隐藏与传输的方法及系统 | |
WO2023125056A1 (zh) | 网络数据的控制方法、装置和存储介质及电子设备 | |
CN115174340B (zh) | 支持多种协议类型与物联网操作系统交互的通信方法 | |
CN104243412A (zh) | 网络数据处理终端及在其中处理网络数据的方法 | |
CN101547110A (zh) | 一种组播源的注册方法、系统和设备 | |
WO2021232920A1 (zh) | 数据传输方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 9th Floor, Block A, Shenzhen National Engineering Laboratory Building, No. 20, Gaoxin South 7th Road, High-tech Zone Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen Huayun Information System Technology Co.,Ltd. Address before: No. 904, block a, national engineering laboratory building, Gaoxin South 7th road digital technology park, Yuehai street, Nanshan District, Shenzhen, Guangdong 518000 Patentee before: Shenzhen Huayun Information System Co.,Ltd. |