本发明涉及计算机网络,具体为一种利用向量时钟解决多主机行情数据对时的系统及对时改进方法。
背景技术:
1、在金融行业中,行情数据的准确性对交易的执行非常重要。然而,在多主机环境下,由于网络延迟、主机时间不同步等原因,行情数据的时间戳可能存在不一致性问题,导致多主机的行情数据的事务性无法保证,会引发交易风险。
2、传统的行情数据对时方法主要通过时间同步协议,如网络时间协议(ntp)或精确时间协议(ptp)进行集中校准。然而,传统方法存在以下问题:
3、1、在网络拓扑变化频繁或带宽较小的网络环境中,ntp时间服务器可能会出现同步误差。
4、2、在受到网络中间人攻击时,ntp容易被监听对话,谎报时间,安全性能低,极端情况下会导致行情数据漂移过大,影响安全生产。
5、3、ptp协议需要依赖设备支持及协议层级匹配,对时间源服务器有所依赖,成本较高。
6、4、集中式校准容易出现单点故障,一旦时间服务器出现问题,整个系统的对时功能将受到影响。
7、5、当主机数量增多时,中心化校准的计算和传输负担会显著增加,网络压力也会增加。
技术实现思路
1、本发明要解决的技术问题是克服现有技术的不足,提供一种可以解决多台主机对行情数据的对时场景的对时系统及对时改进方法,以保障行情生成系统的解耦性、可靠性、实时性、公平性,降低运行风险。
2、为了实现上述目的,设计一种利用向量时钟解决多主机行情数据对时的系统,包括向量时钟系统,包括时钟同步模块、向量时钟生成模块和时钟校准模块;时钟同步模块,用于向量时钟的同步更新,主机节点之间通过接收到的行情信息中的时间信息作为逻辑时钟;向量时钟生成模块,每个主机节点根据接收到的向量时钟信息进行自身的向量时钟更新,同时对行情数据进行时间戳标记,所述向量时钟生成模块申请并维护一块内存存储向量时钟值,在接收到的行情信息中的时间信息比存储的向量时钟大时对向量时钟进行更新;时钟校准模块,在行情数据的分发过程中,各个主机节点会将自身的向量时钟信息附加在数据包中,监控节点通过解析该信息对数据进行时间校准,所述时钟校准模块在监控节点接收到各主机节点的向量时钟信息后,会根据接收到的信息计算出各节点的时钟信息的差值,并进行时钟检验,在单点发生故障时,监控节点检验到与其他节点相差超过阈值,对该节点进行报警。
3、还设计采用所述系统的利用向量时钟解决多主机行情数据对时改进方法,所述方法采用上游行情切片时间作为唯一的逻辑时钟进行时间的更新,具体方法如下:
4、s1.每个主机节点装配一套向量时钟系统,包括时钟同步模块、向量时钟生成模块和时钟校验模块,时钟同步模块负责与上游主机进行连接获取业务时间进行同步,向量时钟生成模块负责生成向量时钟,时钟校验模块负责根据监控各主机的向量时钟信息进行检验;
5、s2.主机节点之间通过接收到的行情信息中的时间信息作为逻辑时钟,申请并维护一块内存存储向量时钟值,在接收到的行情信息中的时间信息比存储的向量时钟大时对向量时钟进行更新,当行情数据生成时,每个主机节点会对数据标记时间戳,并将其附加在数据包中;
6、s3.每个主机节点在与监控节点通信时,通过网络传递向量时钟信息,向量时钟信息包括节点的标识和该节点的向量时钟值,监控节点接收到各主机节点的向量时钟信息后,会根据接收到的信息计算出各节点的时钟信息的差值,并进行时钟检验,在单点发生故障时,监控节点检验到与其他节点相差超过阈值,对该节点进行报警。
7、进一步地,所述步骤s2中在行情数据的传输过程中,发送方节点会将自己的向量时钟信息附加在数据包中进行传输,接收方节点会解析该信息,并根据接收到的时间戳和自身的向量时钟信息进行时钟校准。
8、本发明同现有技术相比,其优点在于:
9、本发明借助上游交易系统发出的逻辑时钟作为向量时钟来实现多台主机间的时间一致性,将共享内存视作消息总线,不同进程能够通过访问同一块内存区域,可以保障行情生成系统的解耦性、可靠性、实时性,降低运行风险。
1.一种利用向量时钟解决多主机行情数据对时的系统,其特征在于包括
2.一种采用如权利要求1所述系统的利用向量时钟解决多主机行情数据对时改进方法,其特征在于所述方法采用上游行情切片时间作为唯一的逻辑时钟进行时间的更新,具体方法如下:
3.如权利要求2所述的一种利用向量时钟解决多主机行情数据对时改进方法,其特征在于所述步骤s2中在行情数据的传输过程中,发送方节点会将自己的向量时钟信息附加在数据包中进行传输,接收方节点会解析该信息,并根据接收到的时间戳和自身的向量时钟信息进行时钟校准。