CN117422556B - 基于复制状态机的衍生品交易系统、设备和计算机介质 - Google Patents
基于复制状态机的衍生品交易系统、设备和计算机介质 Download PDFInfo
- Publication number
- CN117422556B CN117422556B CN202311716260.4A CN202311716260A CN117422556B CN 117422556 B CN117422556 B CN 117422556B CN 202311716260 A CN202311716260 A CN 202311716260A CN 117422556 B CN117422556 B CN 117422556B
- Authority
- CN
- China
- Prior art keywords
- transaction
- message
- data
- derivative
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000010076 replication Effects 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 34
- 230000004044 response Effects 0.000 claims abstract description 32
- 238000004891 communication Methods 0.000 claims description 83
- 230000008859 change Effects 0.000 claims description 53
- 238000004590 computer program Methods 0.000 claims description 11
- 230000003993 interaction Effects 0.000 claims description 11
- 238000011010 flushing procedure Methods 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 238000000034 method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007935 neutral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本公开的实施例公开了基于复制状态机的衍生品交易系统、设备和计算机介质。该系统的一具体实施方式包括:网关接入端用于接收衍生品交易消息,以及将所接收的衍生品交易消息发送至主节点消息中间件;主节点消息中间件响应于接收到衍生品交易消息,对衍生品交易消息进行日志记录,以及驱动执行复制状态机,将衍生品交易消息复制至从节点消息中间件中;主节点消息中间件用于将衍生品交易消息回放至主节点合约端;主节点合约端用于对衍生品交易消息进行处理,以生成处理后的衍生品交易消息。该实施方式为提升速度,主节点的核心交易模块只进行交易处理,并且向外发送报文事件,不进行数据库相关操作。
Description
技术领域
本公开的实施例涉及计算机技术领域,具体涉及基于复制状态机的衍生品交易系统、设备和计算机介质。
背景技术
现有主流的衍生品交易系统一般都是基于关系数据库的信息系统,关系数据库分两类:常规关系数据库,比如MySQL、Oracle等;内存关系数据库,比如Oracle Timesten、H2等。在追求极低时延的衍生品交易系统中,不论采用常规关系数据库还是内存关系数据库,时延都在100微秒以上,难以实现更低时延。
基于关系数据库的交易系统,系统灾备依赖数据库灾备,灾备环境搭建复杂。
此外,频繁写入的时候会导致数据库运行压力过高,无法实现快速写入,容易造成数据库读取卡顿。
另外,由于衍生品交易系统与较多用户终端进行信息交互,因此需要通信测试人员定期测试交易系统主节点与从节点之间的通信稳定性。然而,通信测试人员定期测试交易系统主节点与从节点之间的通信稳定性,测试存在空档,难以及时检测到交易系统主节点与从节点之间的通信异常。
该背景技术部分中所公开的以上信息仅用于增强对本发明构思的背景的理解,并因此,其可包含并不形成本国的本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本公开的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开的一些实施例提出了基于复制状态机的衍生品交易系统、电子设备和计算机可读介质,来解决以上背景技术部分提到的技术问题中的一项或多项。
第一方面,本公开的一些实施例提供了一种基于复制状态机的衍生品交易系统,该系统包括:主节点信息交互端与从节点信息存储端,上述主节点信息交互端包括:网关接入端、对冲端、主节点消息中间件与主节点合约端,上述从节点信息存储端包括:从节点消息中间件与从节点合约端,其中,上述网关接入端与上述主节点消息中间件通信连接,上述主节点消息中间件分别与上述对冲端、上述主节点合约端通信连接;上述主节点消息中间件与上述从节点消息中间件通信连接;上述网关接入端用于接收衍生品交易消息,以及将所接收的衍生品交易消息发送至上述主节点消息中间件;上述主节点消息中间件响应于接收到衍生品交易消息,对上述衍生品交易消息进行日志记录,以及驱动执行复制状态机,将上述衍生品交易消息复制至上述从节点消息中间件中;上述主节点消息中间件用于将上述衍生品交易消息回放至上述主节点合约端;上述主节点合约端用于对衍生品交易消息进行处理,以生成处理后的衍生品交易消息;上述从节点消息中间件响应于接收到衍生品交易消息,将上述衍生品交易消息回放至上述从节点合约端;上述从节点合约端响应于接收到上述衍生品交易消息,执行同步落库操作。
第二方面,本公开的一些实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述第一方面任一实现方式所描述的方法。
第三方面,本公开的一些实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现上述第一方面任一实现方式所描述的方法。
本公开的上述各个实施例具有如下有益效果:通过本公开的一些实施例的基于复制状态机的衍生品交易系统,基于复制状态机和消息中间件,所有交易请求和交易所回报消息,在主节点都进行可靠的复制传输。在主节点合约端,处理模块内采用单线程+复制状态机模式开发,保证同一顺序报文,主节点处理结果一致。为提升速度,主节点的核心交易模块只进行交易处理,并且向外发送报文事件,不进行数据库相关操作。具体来说,难以实现更低时延的原因在于:常规关系数据库还是内存关系数据库,时延都在100微秒以上。基于此,本公开的一些实施例的基于复制状态机的衍生品交易系统,上述衍生品交易系统包括:主节点信息交互端与从节点信息存储端,上述主节点信息交互端包括:网关接入端、对冲端、主节点消息中间件与主节点合约端,上述从节点信息存储端包括:从节点消息中间件与从节点合约端。首先,上述网关接入端与上述主节点消息中间件通信连接,上述主节点消息中间件分别与上述对冲端、上述主节点合约端通信连接;上述主节点消息中间件与上述从节点消息中间件通信连接。其次,上述网关接入端用于接收衍生品交易消息,以及将所接收的衍生品交易消息发送至上述主节点驱动程序。接着,上述主节点消息中间件响应于接收到衍生品交易消息,对上述衍生品交易消息进行日志记录,以及驱动执行复制状态机,将上述衍生品交易消息复制至上述从节点消息中间件中。然后,上述主节点消息中间件用于将上述衍生品交易消息回放至上述主节点合约端;上述主节点合约端用于对衍生品交易消息进行处理,以生成处理后的衍生品交易消息;上述从节点消息中间件响应于接收到衍生品交易消息,将上述衍生品交易消息回放至上述从节点合约端。最后,上述从节点合约端响应于接收到上述衍生品交易消息,执行同步落库操作。由此,主节点核心处理模块差异化处理,主节点都进行交易报文处理,但主节点向外发送消息事件,不进行数据库操作。从节点进行数据库操作,但是不对外发送消息事件。从而,降低了消息延迟。基于复制状态机的交易系统,灾备节点前置(从节点消息中间件),只需将请求报文复制到灾备节点即可,灾备环境搭建更简单。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,元件和元素不一定按照比例绘制。
图1是根据本公开的基于复制状态机的衍生品交易系统的一些实施例的系统架构图;
图2是适于用来实现本公开的一些实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面将参考附图并结合实施例来详细说明本公开。
图1示出了根据本公开的基于复制状态机的衍生品交易系统的一些实施例的系统架构图。示出了根据本公开的基于复制状态机的衍生品交易系统包括:主节点信息交互端101与从节点信息存储端102,上述主节点信息交互端101包括:网关接入端、对冲端、主节点消息中间件与主节点合约端,上述从节点信息存储端102包括:从节点消息中间件与从节点合约端。
在一些实施例中,上述网关接入端与上述主节点消息中间件通信连接,上述主节点消息中间件分别与上述对冲端、上述主节点合约端通信连接。网关接入端可以是指FIX(Financial Information eXchange)接入端。主节点消息中间件可以是指高可靠消息中间件。对冲端可以是指同交易柜台或者交易所进行对接的终端。主节点合约端可以是负责交易的风控、簿记等业务逻辑处理,同时向网关接入端和对冲端发送消息事件的合约端。
可选地,主节点信息交互端被配置成:
第一步,向上述从节点信息存储端包括的网关发送通信数据,以发送至上述从节点信息存储端。其中,上述通信数据包括:主节点信息交互端地址与从节点信息存储端地址。
第二步,响应于确定上述通信数据写入成功,生成上述通信数据对应的通信信息。
第三步,响应于从上述网关读取到反馈数据,根据上述反馈数据,生成通信反馈信息。
第四步,基于上述通信信息与上述通信反馈信息,确定上述通信数据是否成功发送至上述从节点信息存储端。
例如,主节点信息交互端地址可以是指主节点信息交互端的IP地址。从节点信息存储端地址可以是指从节点信息存储端地址的IP地址。例如,可以采用摘要算法,对通信数据中的内容进行转化处理,从而生成对应的通信信息。摘要算法可以是MD5摘要算法。反馈数据可以是指对于通信数据的反馈数据。可以采用MD5摘要算法,将反馈数据转换为通信反馈信息。再例如,可以采用Jaccard相似系数来确定上述通信信息与上述通信反馈信息是否匹配。若系数大于等于阈值,则可以说明上述通信信息与上述通信反馈信息匹配,表示反馈数据发送成功。反之则可以说明发送失败。
第五步,将上述通信信息与上述通信反馈信息分别存储在主节点消息中间件中,以及将上述通信信息的状态设置为待确认状态。
第六步,根据上述通信信息的发送时间,确定主节点消息中间件的时间位点。其中,上述时间位点的初始值为主节点消息中间件中,最早发送的通信信息的发送时间。其中,时间位点的初始值可以为主节点消息中间件中,最早发送的通信信息的发送时间。初始值通常为在第一次存储发报信息,或数据重置后的首个时间位点。
第七步,响应于确定执行发报状态确认任务,获取本地数据库的时间位点。
第八,根据获取的时间位点,从主节点消息中间件中选择出备选通信信息和备选通信反馈信息。其中,上述备选通信信息为发送时间不小于上述时间位点,且状态为待确认状态的通信信息,上述备选通信反馈信息为接收时间不小于上述时间位点的通信反馈信息。
第九,将上述备选通信信息和备选通信反馈信息进行匹配,根据匹配结果,调整上述备选通信信息的状态。
例如,当确定备选通信信息和备选通信反馈信息匹配成功,则可以将备选通信信息的状态调整为确认成功。若确定匹配失败,且任务执行时长未达到设定时长,则可以不进行处理。若确定匹配失败,且任务执行时长达到设定时长,则可以将备选通信信息的状态调整为确认失败。
上述相关内容作为本公开的一个发明点,解决了背景技术提及的技术问题三“难以及时检测到交易系统主节点与从节点之间的通信异常。”。难以及时检测到交易系统主节点与从节点之间的通信异常的因素往往如下:通信测试人员定期测试交易系统主节点与从节点之间的通信稳定性,测试存在空档。如果解决了上述因素,就能达到缩短通信测试时间的效果。为了达到这一效果,首先,向上述从节点信息存储端包括的网关发送通信数据,以发送至上述从节点信息存储端。其中,上述通信数据包括:主节点信息交互端地址与从节点信息存储端地址。接着,响应于确定上述通信数据写入成功,生成上述通信数据对应的通信信息。然后,响应于从上述网关读取到反馈数据,根据上述反馈数据,生成通信反馈信息。最后,基于上述通信信息与上述通信反馈信息,确定上述通信数据是否成功发送至上述从节点信息存储端。由此,在发送通信数据给从节点信息存储端的同时,可以抄送给自己一份相同的通信数据。通过对通信数据内容进行处理得到通信信息,并对通信反馈数据内容进行处理得到通信反馈信息。然后,可以对通信数据和反馈数据进行对比。如果对比成功则说明通信成功。从而,可以及时检测出交易系统主节点与从节点之间的通信是否成功,缩短了通信测试时间。
在一些实施例中,上述主节点消息中间件与上述从节点消息中间件通信连接。从节点消息中间件可以是指从节点的高可靠消息中间件。从节点合约端可以是指从节点的合约端,核心业务逻辑处理模块,负责交易的风控、簿记等业务逻辑处理,不对外发送消息事件,但是执行同步落库操作。
在一些实施例中,上述网关接入端用于接收衍生品交易消息,以及将所接收的衍生品交易消息发送至上述主节点消息中间件。衍生品交易消息可以是指客户的交易信息。例如,衍生品交易消息可以是指股票/证券等交易信息。
在一些实施例中,上述主节点消息中间件响应于接收到衍生品交易消息,对上述衍生品交易消息进行日志记录,以及驱动执行复制状态机,将上述衍生品交易消息复制至上述从节点消息中间件中。即,对衍生品交易消息进行日志记录,生成衍生品交易消息日志。通过复制状态机,将上述衍生品交易消息复制至上述从节点消息中间件中。
在一些实施例中,上述主节点消息中间件用于将上述衍生品交易消息回放至上述主节点合约端。
在一些实施例中,上述主节点合约端用于对衍生品交易消息进行处理,以生成处理后的衍生品交易消息。上述主节点合约端包括:消费订阅模块、高速环形缓存器。即,可以对衍生品交易消息进行风控、簿记等业务逻辑处理,得到处理后的衍生品交易消息。
可选地,上述主节点合约端被配置成:通过上述消费订阅模块接收衍生品交易消息,以及将接收到的衍生品交易消息缓存至上述高速环形缓存器中;将上述高速环形缓存器中的衍生品交易消息发送至预先设定的至少一个反序列化线程中进行处理,得到处理后的衍生品交易消息;将处理后的衍生品交易消息发送至设置的业务逻辑处理单线程中,得到衍生品交易对冲信息;将上述衍生品交易对冲信息发送至上述对冲端。每一个反序列化线程仅处理衍生品交易消息中的一类数据。
在一些实施例中,上述从节点消息中间件响应于接收到衍生品交易消息,将上述衍生品交易消息回放至上述从节点合约端。上述从节点合约端包括:从节点消费订阅模块、从节点高速环形缓存器。
在一些实施例中,上述从节点合约端响应于接收到上述衍生品交易消息,执行同步落库操作。
可选地,上述从节点合约端被配置成:通过上述从节点消费订阅模块接收衍生品交易消息,以及将接收到的衍生品交易消息缓存至上述从节点高速环形缓存器中;将上述从节点高速环形缓存器中的衍生品交易消息发送至预先设定的至少一个从节点反序列化线程中进行处理,得到处理后的衍生品交易消息;将处理后的衍生品交易消息发送至设置的从节点业务逻辑处理单线程中,得到衍生品交易对冲信息;对上述衍生品交易对冲信息执行同步落库操作。即,可以将衍生品交易对冲信息存储在Oracle数据库中。
可选地,上述从节点消息中间件被配置成:
第一步,响应于接收到对应目标数据库的交易信息变更消息,确定在预设时间段内是否接收到对应交易数据变更标识相匹配的交易数据信息。其中,上述交易数据变更标识为上述交易信息变更消息的标识。交易信息变更消息可以是指各个衍生品交易对冲信息的变更信息。目标数据库可以是指Oracle数据库。通常情况下,用户在目标数据库上进行的任意操作,可以表征为目标数据库的数据库数据变更。可以理解的是,数据库数据变更的时候一般会产生日志信息(binlog)。其中,日志信息中通常会有这条变更数据的完整信息。在接收到数据库的交易信息变更消息的情况下,首先可以确定在预设时间段内是否接收到,与交易信息变更消息的交易数据变更标识相匹配的数据信息。在这里,当数据库发生数据变更时,可以直接将上述日志信息发送给从节点消息中间件。
第二步,响应于确定未接收到相匹配的交易数据信息,根据上述交易信息变更消息中的业务标识,确定上述交易信息变更消息在缓存数据库中所属的目标业务的键值组。在收到交易信息变更消息后,先放到缓存数据库。在缓存数据库中,可以以单个业务分组,将同一个业务的多条信息合并为一条数据。再将一条数据写到Oracle数据库,以此来降低Oracle数据库的tps(Transaction Per Second,每秒处理的消息数)。作为示例,若确定缓存数据库中划分的各业务中,存在交易信息变更消息中的业务标识所指示的业务,则可以将该业务确定为交易信息变更消息所属的目标业务的键值组。其中,业务标识在这里不限制,可以为数字、字母、文字、符号等中的一种。
第三步,根据上述交易信息变更消息中的用户标识,将上述交易信息变更消息中的数据缓存在上述键值组中、与上述用户标识对应的键上。具体地,可以确定目标业务的键值组中,与用户标识对应的键。从而将该交易信息变更消息中的数据缓存在该键上。即将交易信息变更消息中的数据作为该键的值。也就是说,在收到数据后可以按业务,将数据分配到固定key中。并可以按字段维度(如用户编号的hash值),来保证同一个业务的信息可以分配到同一个key上。这样可以实现数据流合并,降低数据量,以及后续数据写入Oracle数据库的频率。
第四步,响应于达到设定时长,基于上述缓存数据库中各业务标识对应的键值数据,生成表征交易属性数据变更的交易信息数据。响应于确定达到设定时长,可以基于缓存数据库中各业务的键值数据,生成表征交易属性数据变更的交易信息数据。例如,可以设置滑动时间窗口,当调度的执行频率到达1秒时,执行主体可以获取缓存数据库中,位于该滑动时间窗口内的所有业务的数据,如在该1秒内写入缓存数据库中的数据。此时,执行主体可以将每个业务下的每对键值数据,作为表征交易属性数据变更的交易信息数据。
第五步,对上述交易信息数据中的交易属性数据进行存储,以及删除上述缓存数据库中与上述交易信息数据对应的数据。
可选地,上述从节点消息中间件被配置成:响应于确定缓存数据库中划分的各业务中、存在上述交易信息变更消息中的业务标识所指示的业务,将上述业务确定为上述交易信息变更消息所属的目标业务;响应于确定缓存数据库中划分的各业务中、不存在上述交易信息变更消息中的业务标识所指示的业务,对上述交易信息变更消息进行拦截。
可选地,上述从节点消息中间件被配置成:对于上述缓存数据库中的每个业务对应的键值数据,根据上述业务的信息和上述业务对应键的数量,生成上述业务中表征交易属性数据变更的各键的名称,以作为交易信息数据;将得到的各业务的交易信息数据发送至分布式消息队列中。
可选地,上述从节点消息中间件被配置成:
第一步,响应于消费者确定存在信息数据,且成功获取分布式锁,从上述分布式消息队列中获取设定数量的交易信息数据,以及从上述缓存数据库中获取上述设定数量的交易信息数据所指示的交易属性数据。通过消息订阅,可以使用分布式锁尝试加锁。并且在成功获取分布式锁的情况下,可以从分布式消息队列中获取设定数量的交易信息数据,以及可以从缓存数据库中获取这些信息数据所指示的交易属性数据。即与键的名称对应的键值数据中的值的数据。这里的设定数量同样不限制。
第二步,确定上述交易属性数据中是否存在目标交易属性数据之外的数据。其中,上述目标交易属性数据为目标搜索引擎中存储的交易属性数据。可以确定交易属性数据中是否存在目标交易属性数据以外的数据。目标搜索引擎可以是指Oracle数据库的搜索引擎。
第二步,响应于确定存在目标交易属性数据之外的数据,删除上述数据。
第三步,对于属于目标交易属性数据的属性数据,将同一业务的各属性数据,按照事件维度进行去重处理,得到同一业务的至少一条事件数据。
第四步,将各业务的事件数据存储在上述目标搜索引擎中。
上述相关内容作为本公开的实施例的一个发明点,解决了背景技术提及的技术问题二“容易造成数据库读取卡顿”。容易造成数据库读取卡顿的因素往往如下:频繁写入的时候会导致数据库运行压力过高,无法实现快速写入,容易造成数据库读取卡顿。如果解决了上述因素,就能达到缓解数据库读取卡顿的效果。为了达到这一效果,首先,响应于接收到对应目标数据库的交易信息变更消息,确定在预设时间段内是否接收到对应交易数据变更标识相匹配的交易数据信息。其中,上述交易数据变更标识为上述交易信息变更消息的标识。其次,响应于确定未接收到相匹配的交易数据信息,根据上述交易信息变更消息中的业务标识,确定上述交易信息变更消息在缓存数据库中所属的目标业务的键值组。接着,根据上述数据变更信息中的用户标识,将上述交易信息变更消息中的数据缓存在上述键值组中、与上述用户标识对应的键上。然后,响应于达到设定时长,基于上述缓存数据库中各业务标识对应的键值数据,生成表征交易属性数据变更的交易信息数据。最后,对上述交易信息数据中的交易属性数据进行存储,以及删除上述缓存数据库中与上述交易信息数据对应的数据。由此,在接收到交易信息变更消息时,可以先将同一业务中的各用户的属性变更数据,以用户维度进行合并处理,缓存在缓存数据库中。通过以用户维度进行信息合并,可以大大减少数据量。这样不仅可以降低数据库压力。另外,在处理交易信息变更消息之前,还可以进行信息幂等级防重。即确定短时间内是否接收到多个相匹配的信息。也就是确定收到的信息是否为相同消息。这样可以避免或减少信息的重复消费,提升数据处理效率。
下面参考图2,其示出了适于用来实现本公开的一些实施例的电子设备200(例如计算设备)的结构示意图。本公开的一些实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图2示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图2所示,电子设备200可以包括处理装置201(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)202中的程序或者从存储装置208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM203中,还存储有电子设备200操作所需的各种程序和数据。处理装置201、ROM 202以及RAM203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
通常,以下装置可以连接至I/O接口205:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置206;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置207;包括例如磁带、硬盘等的存储装置208;以及通信装置209。通信装置209可以允许电子设备200与其他设备进行无线或有线通信以交换数据。虽然图2示出了具有各种装置的电子设备200,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图2中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置209从网络上被下载和安装,或者从存储装置208被安装,或者从ROM 202被安装。在该计算机程序被处理装置201执行时,执行本公开的一些实施例的方法中限定的上述功能。
需要说明的是,本公开的一些实施例中记载的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(Hyper Text TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:上述网关接入端与上述主节点消息中间件通信连接,上述主节点消息中间件分别与上述对冲端、上述主节点合约端通信连接;上述主节点消息中间件与上述从节点消息中间件通信连接;上述网关接入端用于接收衍生品交易消息,以及将所接收的衍生品交易消息发送至上述主节点消息中间件;上述主节点消息中间件响应于接收到衍生品交易消息,对上述衍生品交易消息进行日志记录,以及驱动执行复制状态机,将上述衍生品交易消息复制至上述从节点消息中间件中;上述主节点消息中间件用于将上述衍生品交易消息回放至上述主节点合约端;上述主节点合约端用于对衍生品交易消息进行处理,以生成处理后的衍生品交易消息;上述从节点消息中间件响应于接收到衍生品交易消息,将上述衍生品交易消息回放至上述从节点合约端;上述从节点合约端响应于接收到上述衍生品交易消息,执行同步落库操作。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的一些实施例的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (4)
1.一种基于复制状态机的衍生品交易系统,所述衍生品交易系统包括:主节点信息交互端与从节点信息存储端,所述主节点信息交互端包括:网关接入端、对冲端、主节点消息中间件与主节点合约端,所述从节点信息存储端包括:从节点消息中间件与从节点合约端,其中,
所述网关接入端与所述主节点消息中间件通信连接,所述主节点消息中间件分别与所述对冲端、所述主节点合约端通信连接;
所述主节点消息中间件与所述从节点消息中间件通信连接;
所述网关接入端用于接收衍生品交易消息,以及将所接收的衍生品交易消息发送至所述主节点消息中间件;
所述主节点消息中间件响应于接收到衍生品交易消息,对所述衍生品交易消息进行日志记录,以及驱动执行复制状态机,将所述衍生品交易消息复制至所述从节点消息中间件中;
所述主节点消息中间件用于将所述衍生品交易消息回放至所述主节点合约端;
所述主节点合约端用于对衍生品交易消息进行处理,以生成处理后的衍生品交易消息;
所述从节点消息中间件响应于接收到衍生品交易消息,将所述衍生品交易消息回放至所述从节点合约端;
所述从节点合约端响应于接收到所述衍生品交易消息,执行同步落库操作;
所述从节点合约端包括:从节点消费订阅模块、从节点高速环形缓存器;
所述从节点合约端被配置成:
通过所述从节点消费订阅模块接收衍生品交易消息,以及将接收到的衍生品交易消息缓存至所述从节点高速环形缓存器中;
将所述从节点高速环形缓存器中的衍生品交易消息发送至预先设定的至少一个从节点反序列化线程中进行处理,得到处理后的衍生品交易消息;
将处理后的衍生品交易消息发送至设置的从节点业务逻辑处理单线程中,得到衍生品交易对冲信息;
对所述衍生品交易对冲信息执行同步落库操作;
其中,所述从节点驱动程序端被配置成:
响应于接收到对应目标数据库的交易信息变更消息,确定在预设时间段内是否接收到对应交易数据变更标识相匹配的交易数据信息,其中,所述交易数据变更标识为所述交易信息变更消息的标识;
响应于确定未接收到相匹配的交易数据信息,根据所述交易信息变更消息中的业务标识,确定所述交易信息变更消息在缓存数据库中所属的目标业务的键值组;
根据所述交易信息变更消息中的用户标识,将所述交易信息变更消息中的数据缓存在所述键值组中、与所述用户标识对应的键上;
响应于达到设定时长,基于所述缓存数据库中各业务标识对应的键值数据,生成表征交易属性数据变更的交易信息数据;
对所述交易信息数据中的交易属性数据进行存储,以及删除所述缓存数据库中与所述交易信息数据对应的数据;
其中,所述从节点驱动程序端被配置成:
响应于确定缓存数据库中划分的各业务中、存在所述交易信息变更消息中的业务标识所指示的业务,将所述业务确定为所述交易信息变更消息所属的目标业务;
响应于确定缓存数据库中划分的各业务中、不存在所述交易信息变更消息中的业务标识所指示的业务,对所述交易信息变更消息进行拦截;
其中,所述从节点驱动程序端被配置成:
对于所述缓存数据库中的每个业务对应的键值数据,根据所述业务的信息和所述业务对应键的数量,生成所述业务中表征交易属性数据变更的各键的名称,以作为交易信息数据;
将得到的各业务的交易信息数据发送至分布式消息队列中;
其中,所述从节点驱动程序端被配置成:
响应于消费者确定存在信息数据,且成功获取分布式锁,从所述分布式消息队列中获取设定数量的交易信息数据,以及从所述缓存数据库中获取所述设定数量的交易信息数据所指示的交易属性数据;
确定所述交易属性数据中是否存在目标交易属性数据之外的数据,其中,所述目标交易属性数据为目标搜索引擎中存储的交易属性数据;
响应于确定存在目标交易属性数据之外的数据,删除所述数据;
对于属于目标交易属性数据的属性数据,将同一业务的各属性数据,按照事件维度进行去重处理,得到同一业务的至少一条事件数据;
将各业务的事件数据存储在所述目标搜索引擎中。
2.根据权利要求1所述的衍生品交易系统,其中,所述主节点合约端包括:消费订阅模块、高速环形缓存器;以及
所述主节点合约端被配置成:
通过所述消费订阅模块接收衍生品交易消息,以及将接收到的衍生品交易消息缓存至所述高速环形缓存器中;
将所述高速环形缓存器中的衍生品交易消息发送至预先设定的至少一个反序列化线程中进行处理,得到处理后的衍生品交易消息;
将处理后的衍生品交易消息发送至设置的业务逻辑处理单线程中,得到衍生品交易对冲信息;
将所述衍生品交易对冲信息发送至所述对冲端。
3.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-2中任一所述的衍生品交易系统。
4.一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-2中任一所述的衍生品交易系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311716260.4A CN117422556B (zh) | 2023-12-14 | 2023-12-14 | 基于复制状态机的衍生品交易系统、设备和计算机介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311716260.4A CN117422556B (zh) | 2023-12-14 | 2023-12-14 | 基于复制状态机的衍生品交易系统、设备和计算机介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117422556A CN117422556A (zh) | 2024-01-19 |
CN117422556B true CN117422556B (zh) | 2024-04-12 |
Family
ID=89530447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311716260.4A Active CN117422556B (zh) | 2023-12-14 | 2023-12-14 | 基于复制状态机的衍生品交易系统、设备和计算机介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117422556B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647669A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
CN103973940A (zh) * | 2014-05-13 | 2014-08-06 | 中国人民解放军68029部队 | 多机多通道投影同步方法 |
CN111562995A (zh) * | 2020-04-30 | 2020-08-21 | 成都库珀区块链科技有限公司 | 一种交易消息处理的方法、系统以及相关装置 |
CN116016555A (zh) * | 2021-10-22 | 2023-04-25 | 中移(苏州)软件技术有限公司 | 一种消息同步方法、装置、设备及计算机存储介质 |
CN116302605A (zh) * | 2023-03-02 | 2023-06-23 | 杭州隆埠科技有限公司 | 一种基于消息引擎的消息传输方法 |
CN116545568A (zh) * | 2023-05-17 | 2023-08-04 | 四川璧虹电子信息技术有限公司 | 一种短波信号超高精度时间戳的添加系统及方法 |
-
2023
- 2023-12-14 CN CN202311716260.4A patent/CN117422556B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647669A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
CN103973940A (zh) * | 2014-05-13 | 2014-08-06 | 中国人民解放军68029部队 | 多机多通道投影同步方法 |
CN111562995A (zh) * | 2020-04-30 | 2020-08-21 | 成都库珀区块链科技有限公司 | 一种交易消息处理的方法、系统以及相关装置 |
CN116016555A (zh) * | 2021-10-22 | 2023-04-25 | 中移(苏州)软件技术有限公司 | 一种消息同步方法、装置、设备及计算机存储介质 |
CN116302605A (zh) * | 2023-03-02 | 2023-06-23 | 杭州隆埠科技有限公司 | 一种基于消息引擎的消息传输方法 |
CN116545568A (zh) * | 2023-05-17 | 2023-08-04 | 四川璧虹电子信息技术有限公司 | 一种短波信号超高精度时间戳的添加系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117422556A (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chandra | BASE analysis of NoSQL database | |
US20220253458A1 (en) | Method and device for synchronizing node data | |
CN113254466B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
US20160092493A1 (en) | Executing map-reduce jobs with named data | |
CN111352902A (zh) | 日志处理方法、装置、终端设备及存储介质 | |
US10296485B2 (en) | Remote direct memory access (RDMA) optimized high availability for in-memory data storage | |
US20200389402A1 (en) | Augmenting functionality in distributed systems with payload headers | |
US20200104404A1 (en) | Seamless migration of distributed systems | |
US20230030856A1 (en) | Distributed table storage processing method, device and system | |
US11775358B2 (en) | Tenant copy operation in a microservice architecture | |
CN115168362A (zh) | 数据处理方法、装置、可读介质及电子设备 | |
CN111782614B (zh) | 数据访问方法、装置、设备及存储介质 | |
CN117422556B (zh) | 基于复制状态机的衍生品交易系统、设备和计算机介质 | |
US11368515B1 (en) | Preventing duplicative file processing | |
CN115695587A (zh) | 一种业务数据处理系统、方法、装置和存储介质 | |
CN115098469A (zh) | 数据库迁移方法及装置、电子设备和可读存储介质 | |
CN114896276A (zh) | 数据存储方法、装置、电子设备及分布式存储系统 | |
US9172729B2 (en) | Managing message distribution in a networked environment | |
US11341159B2 (en) | In-stream data load in a replication environment | |
CN113347052A (zh) | 通过访问日志统计用户访问数据的方法和装置 | |
CN110502583B (zh) | 分布式数据同步方法、装置、设备及可读存储介质 | |
US11874821B2 (en) | Block aggregation for shared streams | |
CN116431523B (zh) | 一种测试数据管理方法、装置、设备及存储介质 | |
US20180007130A1 (en) | Peer-to-Peer Assisted Personal Synchronization | |
US11842077B2 (en) | Method, device, and computer program product for transmitting data for object storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |