一、adaptorservice
负责直接数据转发和逐条数据切分。
1.1 使用pub模式。
网络端口获取数据后直接通过zeromqserver进行tcp和inproc的pub,主题号形式为10001.src。
1.2 本地建立zeromqclient
通过inproc获取原始数据,存入缓冲区RingBuffer。同时线程Processor在缓冲区中按照数据的包头包尾标识逐条获取数据。并在此通过zeromqserver将数据进行发布,主题号形式定为10001.1by1。
二 建立多个worker
负责数据加工与处理,worker可以在进程和线程级组合应用,worker由fowardworker+多个处理worker+server组成。
worker的属性为:工作时间,工作任务。
2.1 通过sub adaptorservice的1by1主题,将数据进行处理,处理静态数据(落入xml)、存入本地缓存(sharemem或者mongodb)、统计开高低收、分钟线等数据。并进行发布(估计要采用push模式或者sub模式)。
2.2 forwardworker负责订阅adaptorservic并转发inproc。
lastdataworker处理最新值数据存入fastdb,同时通知本地server发布变化的数据。初始化数据来自db。开盘操作(清空各字段留下昨收等可用数据)或收盘操作(落库或存文件)未完成。
staticinfoworker处理静态数据,存入xml。
tickWorker 已使用fastdb完成。增加开盘和收盘操作操作,即清空操作和写文件或数据库操作。
minuteKworker,开始实现。综合比较定时方法和实时方法,鉴于最后一分钟的数据计算逻辑