一.整体架构
1.整体概述
转码服务器逻辑上分为3层,驱动层、数据层和服务层。
驱动层(DriverIO):管理和连接各市场二级驱动(Dll),为数据层提供驱动原始数据。
数据层(DataIO):主要提供实时数据和历史数据的转码,把驱动源数据转为行情数据,并保存在内存或文件中。
服务层(RequestIO、UserIO):为客户端(或下级服务器)提供行情数据的请求和实时数据推送。从数据层获取数据组包发送到客户端。
此外,通过一个工作线程(ProcessIO)对系统状态进行维护和管理。
2.工作状态
转码服务器的运行与2个时间相关,行情时间与本机时间。原则是本机状态的变化一律以本机时间为标准。而行情时间只用于计算转码,与系统状态无关。系统状态如图:
转码机包括正在初始化、行情中、正在收盘、盘后四个状态,状态变化由工作线程判断本机时间触发,比如上午9:00初始化、下午16:00收盘。其中初始化状态断开客户端(不断开下级Cache服务器),不提供服务。收盘状态不提供历史数据的请求。