一种适用于多路行情源的行情订阅及发布方法及装置与流程

文档序号:31727119发布日期:2022-10-05 00:52阅读:137来源:国知局
一种适用于多路行情源的行情订阅及发布方法及装置与流程

1.本发明涉及行情订阅与发布领域,具体涉及一种适用于多路行情源的行情订阅及发布方法及装置。


背景技术:

2.行情系统一般应用于证券商务之中,为了获取全面的行情信息,服务器需要接入多路行情源以供客户使用。然而,不同行情源的协议和格式都不同,当需要同时接入多种行情源时,客户需在应用程序中适配多种行情源的协议。从而会引发以下问题:当行情源增加或者协议变更时,维护成本会猛然上升。在应用程序中直接对接多个上游行情系统,当实例部署多份时,对上游行情系统的压力会剧增,容易引发行情系统崩溃。


技术实现要素:

3.鉴于以上现有技术的缺点,本发明提供一种适用于多路行情源的行情订阅及发布方法及装置,以降低用户在多路行情源中获取行情数据的难度。
4.为实现上述目的及其它相关目的,本发明提供一种适用于多路行情源的行情订阅及发布方法,包括:
5.通过第一信道接收行情订阅请求;
6.自多路行情源中匹配与所述行情订阅信息相应的行情数据,所述行情数据具有统一的设定格式,所述设定格式包括至少一种结构体。所述结构体为快照行情、逐笔成交行情或逐笔委托行情的一种或几种。
7.将所述行情数据通过第二信道发送出去,以供客户端接收;
8.其中,所述第一信道与所述第二信道的信道类型不同。
9.在本发明一实施方式中,所述第一信道为http协议通道,所述第二信道为zeromq通道。
10.通过两个不同的信道进行订阅及发布,能够将多路不同源的证券交易行情统一接收并以统一的格式,通过zeromq高效发布给下游。
11.在本发明一实施方式中,通过第一信道接收行情订阅请求的步骤之前包括:接收并响应用户的登入请求。
12.在本发明一实施方式中,所述订阅请求包括:订阅主题,所述订阅主题包括身份识别信息。
13.在本发明一实施方式中,所述行情数据包括:行情信息及所述订阅主题。
14.本发明提供一种适用于多路行情源的行情订阅及发布装置,包括:
15.第一接收模块,通过第一信道接收行情订阅请求;
16.处理模块,自多路行情源中匹配与所述行情订阅信息相应的行情数据;所述行情数据具有统一的设定格式,所述设定格式包括至少一种结构体。所述结构体为快照行情、逐笔成交行情或逐笔委托行情的一种或几种。
17.发布模块,将所述行情数据通过第二信道发送出去,以供客户端接收。
18.本发明提供一种适用于多路行情源的行情订阅及发布方法,包括:
19.通过第一信道向主服务器发送订阅请求;
20.通过第二信道接收主服务器响应所述订阅请求时发送的行情数据;所述行情数据具有统一的设定格式,所述设定格式包括至少一种结构体。所述结构体为快照行情、逐笔成交行情或逐笔委托行情的一种或几种。
21.对所述行情数据进行身份验证、并在所述身份验证通过后将所述行情数据发送出去,以供上层应用使用;
22.其中,所述第一信道与所述第二信道的信道类型不同。
23.在本发明一实施方式中,还包括步骤:监听所述第二信道,当检测到与所述主服务器的连接断开时,启动计时并重新建立与所述主服务间的连接,当所述计时的时长超过设定阈值且没重新连接上所述主服务时,则断开与所述主服务的连接,并通过第三通道向备用服务器发送订阅请求;通过第四信道接收所述备用服务器发送的行情数据;对所述行情数据进行身份验证、并在所述身份验证通过后将所述行情数据发送出去,以供上层应用使用;所述第三信道与所述第一信道的类型一致,所述第四信道与所述第二信道的类型一致。
24.在本发明还提供一种适用于多路行情源的行情订阅及发布装置,包括:
25.订阅模块,通过第一信道向主服务器发送订阅请求;
26.第二接收模块,通过第二信道接收主服务器响应所述订阅请求时发送的行情数据;所述行情数据具有统一的设定格式,所述设定格式包括至少一种结构体。所述结构体为快照行情、逐笔成交行情或逐笔委托行情的一种或几种。
27.验证模块,对所述行情数据进行身份验证、并在所述身份验证通过后将所述行情数据发送出去,以供上层应用使用。
28.在本发明一实施方式中,所述装置还包括:监听模块,用于监听所述第二信道;检测模块,用于检测与主服务器的连接状态;计时模块,当检测到与所述主服务器的连接断开时,启动计时并重新建立与所述主服务间的连接;通讯模块,用于与主服务建立或断开连接。
29.本发明适用于多路行情源的行情订阅及发布方法,通过第一信道进行订阅,并通过第二信道进行行情发布,且第一信道与第二信道的类型不同,能够快速实现订阅及发布。同时行情数据具有统一的设定格式,并快速经由第二信道发送出去,从而降低了客户端自多路行情源中获取行情数据的难度。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1为本发明所述的适用于多路行情源的行情订阅及发布方法于一实施方式中的流程图;
32.图2为本发明所述的适用于多路行情源的行情订阅及发布装置于一实施方式中的
结构框图;
33.图3为本发明所述的适用于多路行情源的行情订阅及发布方法于另一实施方式中的流程图;
34.图4为本发明所述的适用于多路行情源的行情订阅及发布装置于另一实施方式中的结构框图;
35.图5为本发明所述的适用于多路行情源的行情订阅及发布系统于一实施方式中的结构框图;
具体实施方式
36.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其它优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。下列实施例中未注明具体条件的试验方法,通常按照常规条件,或者按照各制造商所建议的条件。
37.须知,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
38.请参阅图1,本发明提供一种适用于多路行情源的行情订阅及发布方法,包括:
39.接收并响应用户的登入请求。用户在登入账户时,会向主服务器发送登入请求,登入请求中包含用户的身份识别信息,所述身份识别信息为全局唯一的id。
40.通过第一信道接收行情订阅请求;所述订阅请求包括:订阅主题,所述订阅主题包括所述身份识别信息。
41.自多路行情源中匹配与所述行情订阅信息相应的行情数据,所述行情数据具有统一的设定格式,所述设定格式包括至少一种结构体。所述结构体为快照行情、逐笔成交行情或逐笔委托行情的一种或几种。所述行情数据包括:行情信息及所述订阅主题。行情信息为快照行情、逐笔成交行情、逐笔委托行情中一种或几种。
42.将所述行情数据通过第二信道发送出去,以供客户端接收。其中,所述第一信道与所述第二信道的信道类型不同。
43.在本发明一实施方式中,所述第一信道为http协议通道,所述第二信道为zeromq通道。
44.通过两个不同的信道进行订阅及发布,能够将多路不同源的证券交易行情统一接收并以统一的格式,通过zeromq高效发布给下游。
45.请参阅图2,本发明提供一种适用于多路行情源的行情订阅及发布装置,包括:第一接收模块、处理模块、发布模块以及第一存储模块;其中,第一接收模块通过第一信道接收行情订阅请求,所述第一接收模块还用于接收用户的登入请求。处理模块自多路行情源中匹配与所述行情订阅信息相应的行情数据;所述行情数据具有统一的设定格式,所述设定格式包括至少一种结构体。所述结构体为快照行情、逐笔成交行情或逐笔委托行情的一
种或几种。所述处理模块还用于响应用户的登入请求。发布模块将所述行情数据通过第二信道发送出去,以供客户端接收。第一存储模块用于存储相关数据。所述第一接收模块、处理模块以及发布模块可以集成在主服务器的内部。
46.请参阅图3,本发明提供一种适用于多路行情源的行情订阅及发布方法,包括:
47.通过第一信道向主服务器发送订阅请求;
48.通过第二信道接收主服务器响应所述订阅请求时发送的行情数据;所述行情数据具有统一的设定格式,所述设定格式包括至少一种结构体。所述结构体为快照行情、逐笔成交行情或逐笔委托行情的一种或几种。
49.对所述行情数据进行身份验证、并在所述身份验证通过后将所述行情数据发送出去,以供上层应用使用;
50.其中,所述第一信道与所述第二信道的信道类型不同。
51.在本发明一实施方式中,还包括步骤:监听所述第二信道,当检测到与所述主服务器的连接断开时,启动计时并重新建立与所述主服务间的连接,当所述计时的时长超过设定阈值且没重新连接上所述主服务时,则断开与所述主服务的连接,并通过第三通道向备用服务器发送订阅请求;通过第四信道接收所述备用服务器发送的行情数据;对所述行情数据进行身份验证、并在所述身份验证通过后将所述行情数据发送出去,以供上层应用使用;所述第三信道与所述第一信道的类型一致,所述第四信道与所述第二信道的类型一致。
52.请参阅图4,在本发明还提供一种适用于多路行情源的行情订阅及发布装置,包括:订阅模块、第二接收模块以及验证模块。其中,订阅模块通过第一信道向主服务器发送订阅请求;第二接收模块通过第二信道接收主服务器响应所述订阅请求时发送的行情数据;所述行情数据具有统一的设定格式,所述设定格式包括至少一种结构体。所述结构体为快照行情、逐笔成交行情或逐笔委托行情的一种或几种。验证模块对所述行情数据进行身份验证、并在所述身份验证通过后将所述行情数据发送出去,以供上层应用使用。
53.请参阅图4,在本发明一实施方式中,所述装置还包括:监听模块、检测模块、计时模块、通讯模块以及第二存储模块。其中,监听模块用于监听所述第二信道;检测模块用于检测与主服务器的连接状态;计时模块当检测到与所述主服务器的连接断开时,启动计时并重新建立与所述主服务间的连接;通讯模块用于与主服务建立或断开连接。所述订阅模块、第二接收模块、验证模块、监听模块、检测模块、计时模块以及通讯模块可以集成于客户用终端设备内,即客户端,所述客户端内设置有sdk(软件开发工具包),客户端通过sdk与主服务器或者备用服务器进行数据通信。所述第二存储模块用于存储。主服务器可以同时向多个客户端发布行情数据。
54.请参阅图5,主服务、备用服务器以及客户端能够相互配合工作,构成适用于多路行情源的行情订阅与发布系统,整个系统由quote_proxy程序(行情转发服务端)和sdk构成,均在linux平台下采用c++11开发。系统的具体工作过程为:
55.(2)quote_proxy和sdk之间由两条通信通道,1条为http协议通道,其用于sdk发起的心跳和订阅指令等低频请求,另外一条为zeromq通道,采用pub/sub模式,用于行情数据的推送
56.(3)sdk启动时,传入一个全局唯一id作为zeromq行情通道的订阅topic
57.(4)sdk启动时,同时通过zmq连接主备quote_proxy,但是不向备机发起zeromq的
订阅(注意,这里的订阅是zeromq的概念,非行情订阅的意思),只向主机发起订阅topic,因此正常情况下备机的行情不会推送至sdk。
58.(5)sdk启动时,通过http协议向主机发起一次登录请求,并将第(3)步的唯一id作为参数传入标识自身。
59.(6)quote_proxy接入各个行情源,并将收取的行情统一成以下三种结构体,分别是快照行情、逐笔成交行情、逐笔委托行情
60.(7)sdk通过http通道发起行情订阅请求(带上第(3)步的唯一id),传入需订阅的代码。
61.(8)quote_proxy将根据各sdk端订阅的情况匹配并通过zeromq的publish端口推送相应的行情数据。
62.(9)sdk的subscribe端(zeromq的概念)在收到行情数据时,校验一下topic是否与第(3)步中的唯一id一致,如不一致,则丢失,否则提交给上层应用,这里在生成唯一id的时候注意最好不要产生有相同前缀的id,因为zeromq的订阅过滤逻辑是按前缀匹配的。
63.(10)sdk高可用方案:
64.1.sdk缓存行情订阅信息(如订阅了哪只代码,非行情数据)。
65.2.监听zeromq通道,当检测到连接断开时,启动计时,当达到一定时间后(可设置超时时间)还没重连上,将disconnect掉本通道,订阅备机通道并发起订阅请求(使用缓存的订阅信息)。
66.3.如在断开连接后又在超时时间内重连上,将自动发起重新订阅请求(使用缓存的订阅信息)。
67.4.切换置备机后将不再切回主机。
68.本发明适用于多路行情源的行情订阅及发布方法,通过第一信道进行订阅,并通过第二信道进行行情发布,且第一信道与第二信道的类型不同,能够快速实现订阅及发布。同时行情数据具有统一的设定格式,并快速经由第二信道发送出去,从而降低了客户端自多路行情源中获取行情数据的难度。主服务器具备转发多客户端的能力,能有效缓解上游行情源的工作压力,从而能够增加下游客户端的数量。所以,本发明有效克服了现有技术中的一些实际问题从而有很高的利用价值和使用意义。
69.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1