CN114124668A - 一种保证多主机行情切片一致的***及方法 - Google Patents
一种保证多主机行情切片一致的***及方法 Download PDFInfo
- Publication number
- CN114124668A CN114124668A CN202111291635.8A CN202111291635A CN114124668A CN 114124668 A CN114124668 A CN 114124668A CN 202111291635 A CN202111291635 A CN 202111291635A CN 114124668 A CN114124668 A CN 114124668A
- Authority
- CN
- China
- Prior art keywords
- market
- quotation
- slice
- server
- main server
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000015654 memory Effects 0.000 claims abstract description 25
- 230000002159 abnormal effect Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 230000002085 persistent effect Effects 0.000 claims description 6
- 238000012856 packing Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 abstract description 2
- 238000005457 optimization Methods 0.000 abstract description 2
- 108700009949 PTP protocol Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012407 engineering method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/103—Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Health & Medical Sciences (AREA)
- Cardiology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Marketing (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及证券业行情生成***技术领域,具体来说是一种保证多主机行情切片一致的***及方法,***由若干台负责生成行情切片的服务器组成,其中一台服务器作为主用服务器,其余为备用服务器,各备用服务器与主用服务器进行UDP和TCP协议通讯,主用服务器负责生成维护行情切片标记,备用服务器向主用服务器请求同步行情切片标记到各自的共享内存中,若备用服务器在一定间隔内收不到数据及心跳,则启动行情切片控制引擎各自生成行情切片标记存储至共享内存中,数据接收模块支持旁路UDP接收多路数据,并进行选优,提高了各服务器计算行情的实时性,多路数据接收也提高了行情***的可用性。
Description
技术领域
本发明涉及证券业行情生成***技术领域,具体来说是一种保证多主机行情切片一致的***及方法。
背景技术
现如今各大证券交易所作为证券集中交易的平台,不仅需要为市场提供开放、公平、安全的证券集中交易平台,也要为投资者提供实时、高效、准确的股市行情数据。行情数据的质量时刻影响着投资人的行为,因此各大证券交易所都致力于打造低时延、高吞吐量、强扩展性、高可用性的行情生成***。
面对大量的交易数据以及不可控网络等问题,单主机的行情***往往无法保障行情切片在交易日内能安全平稳地生成。因此考虑到***的安全性和可用性,各交易所通常会部署一主多备的多主机行情生成***,保证主机单点异常时可切换至备机发送行情切片。由于行情是随着交易数据的产生实时连续地进行变化,而行情切片是主机在特定频率下(如3s/幅)定点产生实时行情并公布于市场的,是一种离散的行情数据。当各主机无法同时接收到相同的交易数据或第一幅行情切片的生成时间不一致时,就无法保证各主机的行情切片一致。此时,若主机出现故障,***可能无法及时切换到备机并持续对外提供准确的行情。因此,在提高安全性和可用性的前提下,为保证多主机实现无缝切换及行情切片的连续准确性,需要设计一种保证多主机行情切片同源一致的方法。
目前有很多工程性方法可解决多主机行情同源的问题,类如分布式***中的集群思想,区块链中的共识算法等。这些算法解决了切换过程中的脑裂问题,但算法本身实现较复杂且容错性较低,大大降低了多主机行情***的可用性。
因此,需要设计一种较容易实现的、保证多主机切换时行情切片同源的方法,提高多主机切换的可用性及行情切片的连续准确性。
发明内容
本发明的目的在于解决现有单主机的行情***在面对大量的交易数据以及不可控网络等问题时,往往无法保障行情切片在交易日内能安全平稳地生成,提供一种保证多主机行情切片一致的***及方法。
为了实现上述目的,设计一种保证多主机行情切片一致的***,其特征在于所述***由若干台负责生成行情切片的服务器组成,其中一台服务器作为主用服务器,其余为备用服务器,各备用服务器与主用服务器进行UDP和TCP协议通讯,主用服务器负责生成维护行情切片标记,备用服务器向主用服务器请求同步行情切片标记到各自的共享内存中,若备用服务器在一定间隔内收不到数据及心跳,则启动行情切片控制引擎各自生成行情切片标记存储至共享内存中;所述的各服务器内由上至下均包括初始化、数据接收转发、行情切片控制、行情切片生成模块,***初始化后,数据接收转发模块将收到的交易数据流进行排序处理,并按序存入共享内存,由于各主机接收相同的交易数据流且每条数据在对应的产品集(set)中都有唯一的序号标识,因此排序后存入共享内存的交易数据是完全一致的,行情切片控制模块实时轮询共享内存中的交易数据并根据规则生成各代码的行情切片标记,备用服务器通过TCP同步主用服务器的标记,依次存入共享内存,备用服务器的行情生成模块实时获取行情切片标记中的信息,以标记位置为截止位置实时计算共享内存中的交易数据,并根据各股票代码的行情切片类型切片后存入下发队列,行情发布平台则依次取主用服务器下发队列的数据包发送给订阅的用户。
优选的,行情发布平台的行情发布***仅订阅一台行情服务器的行情下发,正常情况下,行情发布***仅订阅主用服务器的行情并下发,当超过设定时间无法收到行情时,行情发布***认为通信异常或主用服务器发生异常,并按序切换至配置好的其中一台备服务器订阅行情:若备用服务器与主用服务器间通信畅通,生成的行情与主用服务器一致,行情发布***切换后订阅的行情可视为同一路行情;若备用服务器与主用服务器间通信故障,设定时间后备用服务器能自主生成所有股票代码的行情切片标记及行情切片,备用服务器与主用服务器失联前,编码行情与主用服务器完全一致,因此,行情发布***切换至备用服务器时,若接收到最新的行情切片序号大于断点序号,则立即下发,以保证行情不出现回流,主用服务器与备用服务器的行情合并之后可视为同一路行情。
同时设计一种采用上述***的保证多主机行情切片一致方法,其特征在于方法步骤如下:
S1.若干台服务器基于通讯协议进行时间同步对时;
S2.启动服务器后,各主机的数据接收与分发子***按照不同的频道号启动不同的进程订阅主题数据,各子进程实时接收各个频道的交易数据流并实时组播给其他主机,同时接收其他主机相同频道号的数据流组播,以先接收先处理原则筛选出最快的交易数据流进行解析, 并根据执行序列号排序,各个子进程将排序后的交易数据按条放入各自对应的共享内存容器中,每增加一条交易数据到set中,set中最新记录的位置lastPos将加一,记录数也加一;
S3.主用服务器的行情切片控制子***中,按照set数量启动多个子进程,每个子进程对应有一个行情切片控制对象,每个行情切片控制对象周期性获取对应set中的lastPos,以lastPos为截止位置,轮询本周期内该set内所有股票代码的行情切片控制器,各行情切片控制器计算当前时间与该股票代码上一幅行情切片时间戳的时间差:若超过3秒且交易数据有变化,则该代码本周期内产生增量行情切片,否则不切片;若时间差超过了1分钟,则该代码本周期内产生全量行情切片,同时,将各个代码的行情切片类型以及本周期set的lastPos作为行情切片标记按条依次存入该set对应的行情切片控制共享内存容器中;
S4.其余备用服务器的行情切片控制子***不断向主用服务器订阅行情切片标记,根据行情切片标记的序号按序同步到各自的snapCtrl中;
S5.服务器的行情生成子***中,每个子进程维护一个set,子进程主要进行三个操作:
实时读取snapCtrl中的元素,并获取每个元素中的lastPos及对应的行情切片类型;
根据读取到的snapCtrl中某个元素中的lastPos实时计算出对应的统计值;
根据代码获得对应的行情切片对象,依照对应的行情切片类型生成行情切片,并经过打包、FAST(FIX Adapted for streaming)协议编码后存入对应的下发队列并持久化到文件;
S6.***运行结束后,对服务器的持久化文件解FAST编码为行情数据,并按行情切片的序号排序,排序后比对所有代码的所有行情切片,以验证多主机行情切片一致方法的正确性,最终所有服务器所产生的行情切片应完全一致。
优选的,步骤S4能替换为:备用服务器设定时间内收不到消息时,会主动向主用服务器发送心跳,若超过设定时间收不到心跳回复,则认为与主用服务器的连接出现异常或主用服务器出现异常并断开连接,此时备用服务器的每个行情切片控制子***都由被动处理行情切片标记转为主动生成行情切片标记;轮询set,从set的第一条开始轮询交易数据直到最新位置,确定当前的lastPos;子***的行情切片控制对象轮询对应set内所有股票代码的行情切片控制器,每个行情切片控制器调用行情切片控制算法确定当前周期内该代码的行情切片类型;将代码、行情切片类型、lastPos等信息作为一条行情切片标记记录存入该子***维护的snapCtrl中。
优选的,还包括步骤S5,备用服务器的行情生成子***按照set启动多个子进程,每个子进程轮询snapCtrl中的行情切片标记,以lastPos为截止位置,轮询set中的交易数据进行行情的实时计算,轮询交易数据完成后,轮询市场行情切片对象,根据各代码的行情切片类型生成行情切片,根据相同的打包策略打包行情、经由FAST编码后存入对应的下发队列并持久化到文件。
本发明同现有技术相比,其优点在于:
1.数据接收模块支持旁路UDP接收多路数据,并进行选优,提高了各服务器计算行情的实时性,多路数据接收也提高了行情***的可用性;
2.相比较集群式的多主机行情同源,此方法在正常场景下,能够保证多主机间的行情完全一致,下游需要切换时,可以随意切换至任意一台主机接收行情,提高了***的可用性;
3.支持TCP回补,备用服务器重连时,若发现行情切片标记有缺失,可从主用服务器订阅缺失部分的信息;
4.以多进程方式处理业务,避免使用锁机制,提高业务并行处理能力;
5.以共享内存作为进程间数据交互的手段,提高数据访问性能。
附图说明
图1是根据本公开实施例1所述的多主机行情切片一致方法的正常运作示意图。
具体实施方式
下面结合附图对本发明作进一步说明,本发明的结构和原理对本专业的人来说是非常清楚的。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1,以本发明方法及装置在证券行情的多主机行情***中使用为例,对本发明进行说明。本实施方式中,本发明的方法用于解决多主机行情不一致的问题,提高行情***的高可用性。
本发明方法分别部署在不同的服务器上,所有应用接收同一份交易数据流,各自处理接收到的交易数据流并计算实时行情。正常运行期间,各个应用将每一幅行情切片的行情切片标记及每一幅行情切片保存至共享内存。运行结束后,对比所有行情主机共享内存中的行情切片,判断行情切片是否完全一致。主用服务器运行异常情况下,备用服务器能依照自己的机制生成行情切片且行情切片不会出现回流。
以下实施方式在测试环境中进行。以四台安装行情***应用的服务器为测试机,确定其中一台为主用服务器,其余三台为备用服务器。***运行结束后,比对各个服务器产生的所有行情切片。图1展示了本实施方式的正常流程,由图所示,该***包括:
步骤a.四台服务器基于PTP协议进行时间同步对时。
步骤b.启动四台服务器后,各主机的数据接收与分发子***按照不同的频道号启动不同的进程订阅主题数据(为支持分布式处理并提高***处理性能,交易***将不同股票拆分到不同的频道中分别进行交易处理。每个频道处理一组股票的交易,生成该组股票对应交易数据,包括订单及成交)。各子进程实时接收各个频道的交易数据流并实时组播给其他主机,同时接收其他主机相同频道号的数据流组播,以先接收先处理原则筛选出最快的交易数据流进行解析(将二进制流数据解析成代码可理解的结构体数据), 并根据执行序列号排序(每个频道中的所有交易数据有唯一执行序列号,且递增)。各个子进程将排序后的交易数据按条放入各自对应的共享内存容器(一个子进程维护一个数据存储容器,以下简称set)中,每增加一条交易数据到set中,set中最新记录的位置lastPos将加一(位置从0开始,依次递增),记录数也加一。
步骤c.主用服务器的行情切片控制子***中,按照set数量启动多个子进程,每个子进程对应有一个行情切片控制对象,每个行情切片控制对象周期性获取对应set中的lastPos,以lastPos为截止位置,轮询本周期内该set内所有股票代码的行情切片控制器(一支股票代码维护一个行情切片控制器)。各行情切片控制器计算当前时间与该股票代码上一幅行情切片时间戳的时间差:若超过3秒且交易数据有变化,则该代码本周期内产生增量行情切片,否则不切片;若时间差超过了1分钟,则该代码本周期内产生全量行情切片。同时,将各个代码的行情切片类型(0为不产生,1为产生全量,2为产生增量)以及本周期set的lastPos作为行情切片标记按条依次存入该set对应的行情切片控制共享内存容器(一个子进程维护一个行情切片控制存储容器,以下简称snapCtrl)中。
步骤d.其余三台备用服务器的行情切片控制子***不断向主用服务器订阅行情切片标记,根据行情切片标记的序号按序同步到各自的snapCtrl中。
步骤e.四台服务器的行情生成子***中,每个子进程维护一个set,子进程主要进行三个操作:
1.实时读取snapCtrl中的元素,并获取每个元素中的lastPos及对应的行情切片类型。
2.根据读取到的snapCtrl中某个元素中的lastPos实时计算出对应的统计值。
3.根据代码获得对应的行情切片对象(一支股票代码对应一个行情切片对象,四台主机的股票代码完全一致),依照对应的行情切片类型生成行情切片。并经过打包、FAST编码(一种压缩编码)后存入对应的下发队列并持久化到文件。
步骤f.***运行结束后,对四台服务器的持久化文件解FAST编码为行情数据,并按行情切片的序号排序。排序后比对所有代码的所有行情切片,以验证多主机行情切片一致方法的正确性,最终所有四台服务器所产生的行情切片应完全一致。
至此,正常场景下的运行流程结束。
实施例2,考虑到多主机***间通信的异常,一旦备用服务器与主用服务器失去联系,需保障备用服务器能独立的生产行情。针对上述步骤d.备用服务器同步行情切片标记的操作,当连接异常时,需做以下调整:
步骤d.备用服务器一定时间(比如3s)内收不到消息时,会主动向主用服务器发送心跳。若超过一定时间收不到心跳回复,则认为与主用服务器的连接出现异常或主用服务器出现异常并断开连接。此时备用服务器的每个行情切片控制子***都由被动处理行情切片标记转为主动生成行情切片标记:
1.轮询set,从set的第一条开始轮询交易数据直到最新位置,确定当前的lastPos;
2.子***的行情切片控制对象轮询对应set内所有股票代码的行情切片控制器,每个行情切片控制器调用行情切片控制算法确定当前周期内该代码的行情切片类型(由于此时是备用服务器第一次调用行情切片控制算法,此时所有代码的行情切片类型都为1,即产生全量行情切片);
3.将代码、行情切片类型、lastPos等信息作为一条行情切片标记记录存入该子***维护的snapCtrl中。
步骤e.备用服务器的行情生成子***按照set启动多个子进程,每个子进程轮询snapCtrl中的行情切片标记,以lastPos为截止位置,轮询set中的交易数据进行行情的实时计算。轮询交易数据完成后,轮询市场行情切片对象,根据各代码的行情切片类型生成行情切片。根据相同的打包策略打包行情、经由FAST编码后存入对应的下发队列并持久化到文件。
实施例3,本发明牵涉到两方:行情生成引擎和行情发布***。上文描述了多主机行情生成一致行情切片的过程,下面将描述行情发布***发布同源行情的过程。
行情发布***仅订阅一台行情服务器的行情下发。正常情况下,行情发布***仅订阅主用服务器的行情并下发。当超过一定时间(比如3s)无法收到行情时,行情发布***认为通信异常或主用服务器发生异常,并按序切换至配置好的其中一台备服务器订阅行情:
1.若备用服务器与主用服务器间通信畅通,生成的行情与主用服务器一致,行情发布***切换后订阅的行情可视为同一路行情;
2.若备用服务器与主用服务器间通信故障,一定时间(比如3s)后备用服务器能自主生成所有股票代码的行情切片标记及行情切片。备用服务器与主用服务器失联前,编码行情与主用服务器完全一致。因此,行情发布***切换至备用服务器时,若接收到最新的行情切片序号大于断点序号,则立即下发,以保证行情不出现回流。主用服务器与备用服务器的行情合并之后可视为同一路行情。
Claims (5)
1.一种保证多主机行情切片一致的***,其特征在于所述***由若干台负责生成行情切片的服务器组成,其中一台服务器作为主用服务器,其余为备用服务器,各备用服务器与主用服务器进行UDP和TCP协议通讯,主用服务器负责生成维护行情切片标记,备用服务器向主用服务器请求同步行情切片标记到各自的共享内存中,若备用服务器在一定间隔内收不到数据及心跳,则启动行情切片控制引擎各自生成行情切片标记存储至共享内存中;所述的各服务器内由上至下均包括初始化、数据接收转发、行情切片控制、行情切片生成模块,***初始化后,数据接收转发模块将收到的交易数据流进行排序处理,并按序存入共享内存,由于各主机接收相同的交易数据流且每条数据在对应的产品集(set)中都有唯一的序号标识,因此排序后存入共享内存的交易数据是完全一致的,行情切片控制模块实时轮询共享内存中的交易数据并根据规则生成各代码的行情切片标记,备用服务器通过TCP同步主用服务器的标记,依次存入共享内存,备用服务器的行情生成模块实时获取行情切片标记中的信息,以标记位置为截止位置实时计算共享内存中的交易数据,并根据各股票代码的行情切片类型切片后存入下发队列,行情发布平台则依次取主用服务器下发队列的数据包发送给订阅的用户。
2.如权利要求1所述的一种保证多主机行情切片一致的***,其特征在于行情发布平台包括行情发布***,行情发布***仅订阅一台行情服务器的行情下发,正常情况下,行情发布***仅订阅主用服务器的行情并下发,当超过设定时间无法收到行情时,行情发布***认为通信异常或主用服务器发生异常,并按序切换至配置好的其中一台备服务器订阅行情:若备用服务器与主用服务器间通信畅通,生成的行情与主用服务器一致,行情发布***切换后订阅的行情可视为同一路行情;若备用服务器与主用服务器间通信故障,设定时间后备用服务器能自主生成所有股票代码的行情切片标记及行情切片,备用服务器与主用服务器失联前,编码行情与主用服务器完全一致,因此,行情发布***切换至备用服务器时,若接收到最新的行情切片序号大于断点序号,则立即下发,以保证行情不出现回流,主用服务器与备用服务器的行情合并之后可视为同一路行情。
3.一种采用如权利要求1所述***的保证多主机行情切片一致方法,其特征在于方法步骤如下:
S1.若干台服务器基于通讯协议进行时间同步对时;
S2.启动服务器后,各主机的数据接收与分发子***按照不同的频道号启动不同的进程订阅主题数据,各子进程实时接收各个频道的交易数据流并实时组播给其他主机,同时接收其他主机相同频道号的数据流组播,以先接收先处理原则筛选出最快的交易数据流进行解析, 并根据执行序列号排序,各个子进程将排序后的交易数据按条放入各自对应的共享内存容器中,每增加一条交易数据到set中,set中最新记录的位置lastPos将加一,记录数也加一;
S3.主用服务器的行情切片控制子***中,按照set数量启动多个子进程,每个子进程对应有一个行情切片控制对象,每个行情切片控制对象周期性获取对应set中的lastPos,以lastPos为截止位置,轮询本周期内该set内所有股票代码的行情切片控制器,各行情切片控制器计算当前时间与该股票代码上一幅行情切片时间戳的时间差:若超过3秒且交易数据有变化,则该代码本周期内产生增量行情切片,否则不切片;若时间差超过了1分钟,则该代码本周期内产生全量行情切片,同时,将各个代码的行情切片类型以及本周期set的lastPos作为行情切片标记按条依次存入该set对应的行情切片控制共享内存容器中;
S4.其余备用服务器的行情切片控制子***不断向主用服务器订阅行情切片标记,根据行情切片标记的序号按序同步到各自的snapCtrl中;
S5.服务器的行情生成子***中,每个子进程维护一个set,子进程主要进行三个操作:
实时读取snapCtrl中的元素,并获取每个元素中的lastPos及对应的行情切片类型;
根据读取到的snapCtrl中某个元素中的lastPos实时计算出对应的统计值;
根据代码获得对应的行情切片对象,依照对应的行情切片类型生成行情切片,并经过打包、FAST(FIX Adapted for streaming)协议编码后存入对应的下发队列并持久化到文件;
S6.***运行结束后,对服务器的持久化文件解FAST编码为行情数据,并按行情切片的序号排序,排序后比对所有代码的所有行情切片,以验证多主机行情切片一致方法的正确性,最终所有服务器所产生的行情切片应完全一致。
4.如权利要求3所述的一种保证多主机行情切片一致方法,其特征在于所述步骤S4能替换为:备用服务器设定时间内收不到消息时,会主动向主用服务器发送心跳,若超过设定时间收不到心跳回复,则认为与主用服务器的连接出现异常或主用服务器出现异常并断开连接,此时备用服务器的每个行情切片控制子***都由被动处理行情切片标记转为主动生成行情切片标记;轮询set,从set的第一条开始轮询交易数据直到最新位置,确定当前的lastPos;子***的行情切片控制对象轮询对应set内所有股票代码的行情切片控制器,每个行情切片控制器调用行情切片控制算法确定当前周期内该代码的行情切片类型;将代码、行情切片类型、lastPos等信息作为一条行情切片标记记录存入该子***维护的snapCtrl中。
5.如权利要求4所述的一种保证多主机行情切片一致方法,其特征在于还包括步骤S5,备用服务器的行情生成子***按照set启动多个子进程,每个子进程轮询snapCtrl中的行情切片标记,以lastPos为截止位置,轮询set中的交易数据进行行情的实时计算,轮询交易数据完成后,轮询市场行情切片对象,根据各代码的行情切片类型生成行情切片,根据相同的打包策略打包行情、经由FAST编码后存入对应的下发队列并持久化到文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111291635.8A CN114124668A (zh) | 2021-11-03 | 2021-11-03 | 一种保证多主机行情切片一致的***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111291635.8A CN114124668A (zh) | 2021-11-03 | 2021-11-03 | 一种保证多主机行情切片一致的***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114124668A true CN114124668A (zh) | 2022-03-01 |
Family
ID=80380529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111291635.8A Pending CN114124668A (zh) | 2021-11-03 | 2021-11-03 | 一种保证多主机行情切片一致的***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114124668A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7603316B1 (en) * | 2004-11-01 | 2009-10-13 | American Express Travel Related Services Company, Inc. | Message delivery delegate system and method |
CN103532753A (zh) * | 2013-10-11 | 2014-01-22 | 中国电子科技集团公司第二十八研究所 | 一种基于内存换页同步的双机热备方法 |
CN103647668A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种高可用集群内主机群体决策***及切换方法 |
CN103838640A (zh) * | 2012-11-23 | 2014-06-04 | 景幂机械(上海)有限公司 | 证券交易的数据备份*** |
CN107247729A (zh) * | 2017-05-03 | 2017-10-13 | ***股份有限公司 | 一种文件处理方法和装置 |
CN110415027A (zh) * | 2019-07-16 | 2019-11-05 | 上海金融期货信息技术有限公司 | 一种大数据行情平台*** |
CN112965860A (zh) * | 2021-03-11 | 2021-06-15 | 中科驭数(北京)科技有限公司 | 一种快照行情分发方法、装置、设备及存储介质 |
-
2021
- 2021-11-03 CN CN202111291635.8A patent/CN114124668A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7603316B1 (en) * | 2004-11-01 | 2009-10-13 | American Express Travel Related Services Company, Inc. | Message delivery delegate system and method |
CN103838640A (zh) * | 2012-11-23 | 2014-06-04 | 景幂机械(上海)有限公司 | 证券交易的数据备份*** |
CN103532753A (zh) * | 2013-10-11 | 2014-01-22 | 中国电子科技集团公司第二十八研究所 | 一种基于内存换页同步的双机热备方法 |
CN103647668A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种高可用集群内主机群体决策***及切换方法 |
CN107247729A (zh) * | 2017-05-03 | 2017-10-13 | ***股份有限公司 | 一种文件处理方法和装置 |
CN110415027A (zh) * | 2019-07-16 | 2019-11-05 | 上海金融期货信息技术有限公司 | 一种大数据行情平台*** |
CN112965860A (zh) * | 2021-03-11 | 2021-06-15 | 中科驭数(北京)科技有限公司 | 一种快照行情分发方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9819733B2 (en) | Peer-to-peer exchange of data resources in a control system | |
US10362323B2 (en) | Methods and apparatus of encoding real time media content | |
JP2004070712A (ja) | データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム | |
US20070067663A1 (en) | Scalable fault tolerant system | |
US20100103781A1 (en) | Time synchronization in cluster systems | |
CA2911001C (en) | Failover system and method | |
CN106254094A (zh) | 一种数据同步方法及*** | |
CN107153660A (zh) | 分布式数据库***的故障检测处理方法及其*** | |
CN109639512B (zh) | 一种vts多传感器信息综合处理***的热备份方法 | |
CN113704354A (zh) | 一种数据同步方法及装置、计算机设备、存储介质 | |
CN106850255A (zh) | 一种多机备份的实现方法 | |
CN112272291A (zh) | 视频存储方法、装置、管理设备及可读存储介质 | |
CN111726388A (zh) | 一种跨集群高可用的实现方法、装置、***及设备 | |
CN114124668A (zh) | 一种保证多主机行情切片一致的***及方法 | |
AU2012327228B2 (en) | A system for high reliability and high performance application message delivery | |
CN114554593A (zh) | 数据处理方法及装置 | |
CN113190620A (zh) | Redis集群之间数据的同步方法、装置、设备及存储介质 | |
CN107147708A (zh) | 一种对等网络冗余数据平衡方法和*** | |
CN111865659B (zh) | 主备控制器的切换方法和装置、控制器、网络设备 | |
CN106791884A (zh) | P2p直播的视频数据一致性的保持***及方法 | |
CN113220473B (zh) | 数据存储方法及*** | |
CN113794541A (zh) | 一种主备切换管理方法、装置、设备及机器可读存储介质 | |
CN113821362A (zh) | 数据复制方法及装置 | |
CN115276710B (zh) | 应答器传输***、应答器定位补偿方法、设备及介质 | |
CN113722125B (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 |