System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理,尤其涉及一种证券核心交易引擎的数据同步方法、系统、设备及介质。
技术介绍
1、如何保证服务高可用和数据的强一致性是核心交易引擎中极其重要的一环。现有技术中,为了保证高可用,往往采用多实例的方式部署应用,在此背景下又产生出如何解决在多个实例中保证数据的一致性的难题。
2、针对这一难题,目前使用的一种技术为在主备实例之间同步请求消息,主备实例确保都收到相同的请求消息后,再持久化到recorder数据文件中,然后开始处理该条消息。这样,主备实例中的内存数据能够保持一致。在做故障恢复时,从recorder数据文件中读取请求,并按照接收顺序回放消息,该方式虽然能够确保故障恢复的实例和正常的实例二者的内存数据是一致的,但是这种主备实例同步并处理消息的机制会存在如下问题:
3、(1)如果某条消息的处理逻辑存在缺陷,则会导致主备实例同时core掉,在故障恢复时回放到该条消息一样会导致主备实例再次core掉,最终无法进行正常的故障恢复而停止服务;
4、(2)在7x24小时的服务场景下,特别是期权行情特别多时,由于每条消息都要持久化到recorder数据文件中,因此recorder数据文件将会变得非常大;并且,在做故障恢复时需要重头开始回放所有消息,将花费数分钟甚至更久的时间,导致在这段时间内无法提供服务。
技术实现思路
1、鉴于以上内容,有必要提供一种证券核心交易引擎的数据同步方法、系统、设备及介质,旨在解决证券核心交易引擎在进行数据同步时
2、一种证券核心交易引擎的数据同步方法,应用于证券核心交易引擎,所述证券核心交易引擎包括主实例及备实例,所述证券核心交易引擎的数据同步方法包括:
3、响应于请求方发送的请求消息,所述主实例根据所述请求消息进行逻辑处理得到处理结果;
4、所述主实例调用自身的第一内存数据库的接口,并利用所述第一内存数据库的接口将所述处理结果更新至所述第一内存数据库的应用层;
5、所述主实例确定数据更新逻辑,并利用所述第一内存数据库的接口执行所述数据更新逻辑;
6、所述主实例获取数据更新记录,并将所述数据更新记录持久化至所述第一内存数据库的第一recorder数据文件中;
7、所述主实例利用所述第一内存数据库将所述数据更新记录同步给所述备实例;
8、所述备实例根据所述数据更新记录执行更新操作,将所述数据更新记录持久化至所述备实例自身的第二内存数据库的第二recorder数据文件中,并向所述主实例返回同步成功响应;
9、当所述主实例接收到所述同步成功响应时,所述主实例根据所述处理结果向所述请求方返回对所述请求消息的响应消息。
10、根据本专利技术优选实施例,所述向所述主实例返回同步成功响应后,所述方法还包括:
11、当所述证券核心交易引擎接收到故障恢复指令时,所述证券核心交易引擎解析所述故障恢复指令,得到故障类型;
12、所述证券核心交易引擎根据所述故障类型进行故障恢复。
13、根据本专利技术优选实施例,所述证券核心交易引擎根据所述故障类型进行故障恢复包括:
14、当所述故障类型为所述主实例故障时,所述证券核心交易引擎利用所述备实例代替所述主实例进行服务。
15、根据本专利技术优选实施例,所述证券核心交易引擎根据所述故障类型进行故障恢复包括:
16、当所述故障类型为所述主实例及所述备实例都崩溃时,所述证券核心交易引擎拉起所述主实例及所述备实例;
17、所述证券核心交易引擎控制所述第一内存数据库读取所述第一recorder数据文件中的数据以回放所述数据更新记录,以及控制所述第二内存数据库读取所述第二recorder数据文件中的数据以回放所述数据更新记录;
18、所述证券核心交易引擎检测所述数据更新记录是否在所述主实例及所述备实例中都完成回放;
19、当检测到所述数据更新记录在所述主实例及所述备实例中都完成回放时,所述证券核心交易引擎从行情网关中拉取当前的全量行情数据。
20、根据本专利技术优选实施例,所述证券核心交易引擎检测所述数据更新记录是否在所述主实例及所述备实例中都完成回放包括:
21、当接收到所述主实例反馈的回放完成的通知事件及所述备实例反馈的回放完成的通知事件时,所述证券核心交易引擎确定检测到所述数据更新记录在所述主实例及所述备实例中都完成回放。
22、根据本专利技术优选实施例,所述证券核心交易引擎根据所述故障类型进行故障恢复后,所述方法还包括:
23、所述证券核心交易引擎继续进行对外服务。
24、根据本专利技术优选实施例,所述数据更新逻辑包括异步逻辑、持久化逻辑。
25、一种证券核心交易引擎的数据同步系统,运行于证券核心交易引擎,所述证券核心交易引擎包括主实例及备实例,所述证券核心交易引擎的数据同步系统包括:
26、所述主实例,用于响应于请求方发送的请求消息,根据所述请求消息进行逻辑处理得到处理结果;
27、所述主实例,还用于调用自身的第一内存数据库的接口,并利用所述第一内存数据库的接口将所述处理结果更新至所述第一内存数据库的应用层;
28、所述主实例,还用于确定数据更新逻辑,并利用所述第一内存数据库的接口执行所述数据更新逻辑;
29、所述主实例,还用于获取数据更新记录,并将所述数据更新记录持久化至所述第一内存数据库的第一recorder数据文件中;
30、所述主实例,还用于利用所述第一内存数据库将所述数据更新记录同步给所述备实例;
31、所述备实例,用于根据所述数据更新记录执行更新操作,将所述数据更新记录持久化至所述备实例自身的第二内存数据库的第二recorder数据文件中,并向所述主实例返回同步成功响应;
32、所述主实例,还用于当所述主实例接收到所述同步成功响应时,根据所述处理结果向所述请求方返回对所述请求消息的响应消息。
33、一种计算机设备,所述计算机设备包括:
34、存储器,存储至少一个指令;及
35、处理器,执行所述存储器中存储的指令以实现所述证券核心交易引擎的数据同步方法。
36、一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述证券核心交易引擎的数据同步方法。
37、由以上技术方案可以看出,一方面,证券核心交易引擎的主实例利用自身第一内存数据库的接口将对请求消息的处理结果更新至第一内存数据库的应用层,利用第一内存数据库的接口执行数据更新逻辑,并获取数据更新记录,将数据更新记录持久化至第一内存数据库的第一recorder数据文件中,主实例利用第一内存数据库将数据更新记录同步给备实例;另一方面,备实例根据数据更新记录执行更新操作本文档来自技高网...
【技术保护点】
1.一种证券核心交易引擎的数据同步方法,其特征在于,应用于证券核心交易引擎,所述证券核心交易引擎包括主实例及备实例,所述证券核心交易引擎的数据同步方法包括:
2.如权利要求1所述的证券核心交易引擎的数据同步方法,其特征在于,所述向所述主实例返回同步成功响应后,所述方法还包括:
3.如权利要求2所述的证券核心交易引擎的数据同步方法,其特征在于,所述证券核心交易引擎根据所述故障类型进行故障恢复包括:
4.如权利要求2所述的证券核心交易引擎的数据同步方法,其特征在于,所述证券核心交易引擎根据所述故障类型进行故障恢复包括:
5.如权利要求4所述的证券核心交易引擎的数据同步方法,其特征在于,所述证券核心交易引擎检测所述数据更新记录是否在所述主实例及所述备实例中都完成回放包括:
6.如权利要求2所述的证券核心交易引擎的数据同步方法,其特征在于,所述证券核心交易引擎根据所述故障类型进行故障恢复后,所述方法还包括:
7.如权利要求1所述的证券核心交易引擎的数据同步方法,其特征在于,所述数据更新逻辑包括异步逻辑、持久化逻辑。<
...【技术特征摘要】
1.一种证券核心交易引擎的数据同步方法,其特征在于,应用于证券核心交易引擎,所述证券核心交易引擎包括主实例及备实例,所述证券核心交易引擎的数据同步方法包括:
2.如权利要求1所述的证券核心交易引擎的数据同步方法,其特征在于,所述向所述主实例返回同步成功响应后,所述方法还包括:
3.如权利要求2所述的证券核心交易引擎的数据同步方法,其特征在于,所述证券核心交易引擎根据所述故障类型进行故障恢复包括:
4.如权利要求2所述的证券核心交易引擎的数据同步方法,其特征在于,所述证券核心交易引擎根据所述故障类型进行故障恢复包括:
5.如权利要求4所述的证券核心交易引擎的数据同步方法,其特征在于,所述证券核心交易引擎检测所述数据更新记录是否在所述主实例及所述备实例中都完成回放包括:...
【专利技术属性】
技术研发人员:刘勇进,何磊,姜三义,宿旭升,
申请(专利权)人:深圳华锐分布式技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。