【技术实现步骤摘要】
一种实时行情处理方法及系统
[0001]本专利技术涉及行情数据处理
,具体的,本专利技术涉及一种实时行情处理方法及系统。
技术介绍
[0002]香港联合交易所(HKEX)通过其数据平台OMD,以多播的形式实时推送全市场行情数据,多播底层采用UDP无连接通信协议,为满足行情提速的迫切需求,需实现对多播数据的实时接收和处理,并且需在网络极端情况下,有对多播数据作出修复的技术手段,以保证实时行情数据的准确性。
技术实现思路
[0003]为了克服现有技术的不足,本专利技术提供了一种实时行情处理方法及系统,以解决上述的技术问题。
[0004]本专利技术解决其技术问题所采用的技术方法是:一种实时行情处理方法,其改进之处在于:包括以下的步骤:S1、多线路多播数据接收线程接收行情数据包,并按行情数据包的接收顺序将行情数据存储在包缓存中;S2、预处理线程拆分行情数据包,添加至内部缓冲区CirBuf4Msg队列,CirBuf4Msg队列是存储行情消息的循环缓冲区;S3、实时行情处理线程从CirBuf4Msg消息队列 ...
【技术保护点】
【技术特征摘要】
1.一种实时行情处理方法,其特征在于:包括以下的步骤:S1、多线路多播数据接收线程接收行情数据包,并按行情数据包的接收顺序将行情数据存储在包缓存中;S2、预处理线程拆分行情数据包,添加至内部缓冲区CirBuf4Msg队列,CirBuf4Msg队列是存储行情消息的循环缓冲区;S3、实时行情处理线程从CirBuf4Msg消息队列按序列号获取行情数据,进行解码,并消费,完成对行情数据的处理。2.如权利要求1所述的一种实时行情处理方法,其特征在于:所述行情数据包包括实时行情数据包和快照行情数据包。3.如权利要求2所述的一种实时行情处理方法,其特征在于:所述步骤S1,包括以下的步骤:S11、启动多线路多播数据接收线程,多线路多播数据接收线程根据预先设置的通道行情类型及主备线路标记获取对应的多播地址;S12、在服务器上创建UDP套接字后加入至所述多播地址,等待多播通道推送行情,UDP即无连接通信协议;S13、多线路多播数据接收线程收到多播通道上的UDP数据包后,根据收到的UDP数据包的长度,从多线路多播数据接收线程内部的包缓存队列CirBuf获取最后一个可用的UDP数据包缓冲区节点,将整个UDP数据包拷贝到分配的存储空间,然后继续等待多播通道的下一个UDP数据包,如此循环往复,CirBuf是存储UDP数据包的循环缓冲区;S14、将整个包缓存中的数据按照数据包接收顺序存储,供预处理线程使用。4.如权利要求3所述的一种实时行情处理方法,其特征在于:所述步骤S13中,从多线路多播数据接收线程内部的包缓存队列CirBuf获取最后一个可用的UDP数据包缓冲区节点,将整个UDP数据包拷贝到分配的存储空间,包括以下的步骤:S131、预先分配若干个缓冲区节点,并将所有节点添加到CirBuf队列中,缓冲区队列都包含读指针readpos和写指针writepos,写入数据时,写指针writepos依次循环递增,指向下一个可写节点,消费数据时,读指针readpos依次循环递增,指向下一个可读节点;S132、当readpos=writepos时,表示队列为空,此时等待新的数据包可读,当(writepos+1)取模队列大小等于readpos时,表示队列已满,此时如果收到新的数据包,则自动扩展该缓冲区队列,分配固定大小的缓冲区节点,再将这些新分配的缓冲区节点添加到队列尾部;S133、调整writepos位置,将UDP数据包写入新的尾部空闲缓冲区。5.如权利要求4所述的一种实时行情处理方法,其特征在于:所述步骤S2,包括以下的步骤:S21、预处理线程从所述的包缓存队列CirBuf中按序取出每一个UDP数据包;S22、将包内的所有消息关联递增的序列号;S23、根据序列号将该UDP数据包插入至CirBuf4Msg消息队列的指定位置。6.如权利要求5所述的一种实时行情处理方法,其特征在于...
【专利技术属性】
技术研发人员:王伏根,
申请(专利权)人:盈立数智科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。