行情服系统总体设计-Cache服务器

一、概述

1、什么是cache服务器

Cache服务器是新行情系统中的一个部件,对远程的客户端提供行情数据服务,对客户端来说所实现的功能和转码服务器一致。

那么既然cache服务器实现和转码服务器一致的功能,为什么又要在行情系统中提供这个部件呢?那是因为cache服务器有一个最大的特点,就是本地不需要有任何数据就可以进行服务,可以很好的迎合券商运营的零维护、低成本维护的要求,而这一点转码服务器是无法做到的。

注:Cache服务器很多模块与转码服务器类似,并且共用两个Lib,此文档仅描述与转码服务器有区别的模块。

       2cache服务器的部署

转码服务器接入行情传输系统获得行情数据,并由此生成历史数据,而由于cache服务器本地没有任何数据,无法通过行情传输系统获得历史数据提供服务,所以cache服务器需要接入转码服务器或者cache服务器以获得服务所需要的历史数据。

       3cache服务器的内部构架

              如上图所示,cache服务器由接入层、数据转码层和服务层构成。

模块

说明

接入层

  1. 向接入的上层行情系统请求服务器工作所必须的基本数据,包括市场信息、静态数据、动态数据等等。
  2. 当前上层行情系统无法完成指定的服务时,自动切换到稳定一个稳定的行情系统。
  3. 当数据转码层无法向服务层提供完整的数据时,向接入的上层行情系统请求所需数据。
  4. 数据转码层补齐本地历史数据时,向接入的上层行情系统请求所需数据。
  5. 接受上层行情系统推送动态数据更新数据转码层的实时数据。

数据转码层

    1. 向服务层提供实时、历史数据,如果当前数据不能满足需要则通过接入层向上层行情系统请求数据。
    2. 每天通过接入层和上层行情系统同步历史数据。

服务层

  1. 通过下层的平台对客户端进行服务,通过转码层获得所需的实时、历史数据。
  2. 缓存部分历史数据。
  3. 和转码服务器的这部分模块(完全)相同。

 

二、接入层

Cache服务器的接入层实际上与行情转码服务器的驱动层功能类似,都是向数据转码层提供统一的接口请求和推送数据。

接入层内部的实现是采用TCP/IP连接的方式向转码服务器取数据,为了更好的利用带宽,需要同时维护一个推送通道和若干个请求通道。请求和推送通道使用不同的端口,以便区分。

推送通道会一直发送心跳包维持和检测链路,一旦发现链路无法联通,或行情中指定时间没有推送数据到达,则认为此服务连接已不可用。这时候如果配置了多个服务器,则切换连接。切换连接成功后,数据层暂停服务,开始初始化数据,初始化完成再提供服务。

如图所示:

每个请求/推送通道,都由EngineLib的MsyncClientComm类派生。

推送通道

请求通道

接入层接口

三、Cache服务器状态逻辑

1.概述

       Cache服务器的状态变化并不是通过时间判断,而是由其所连接的转码服务器状态决定。转码服务器会把自身状态通过市场状态包推送到Cache服务器。

       如图所示:

Cache服务器根据市场推送包的状态变化改变服务状态。由ProcessIO的线程判断服务状态,进行初始化、收盘等工作。

2.初始化逻辑

       Cache服务器的实时数据不保存本地文件,而是初始化时全部从转码服务器请求。

      

四.历史数据补齐与校验

       Cache服务器的收盘不是从本地数据生成历史文件,而是从转码服务器请求。

       如图:

客户端请求历史数据时,Cache服务器判断本地文件校验码与上层服务器是否一致,如果不一致,则删除本地文件,把上层服务器文件同步到本地。

如图:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值