CN111708637A - 一种数据处理方法、装置及计算机可读介质 - Google Patents
一种数据处理方法、装置及计算机可读介质 Download PDFInfo
- Publication number
- CN111708637A CN111708637A CN202010561150.5A CN202010561150A CN111708637A CN 111708637 A CN111708637 A CN 111708637A CN 202010561150 A CN202010561150 A CN 202010561150A CN 111708637 A CN111708637 A CN 111708637A
- Authority
- CN
- China
- Prior art keywords
- transaction
- message
- request
- matching
- target
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本申请实施例公开了一种数据处理方法、装置及计算机可读介质,其中方法包括:通过客户端向均衡服务器发送交易请求;均衡服务器在接收到交易请求的情况下,从至少两个交易服务器中选择负载最小的目标交易服务器,并将交易请求发送至目标交易服务器;在交易请求通过安全验证的情况下,通过目标交易服务器接收交易请求,对交易请求分配请求标识,将请求标识和交易请求中的请求数据存储到数据库中,将根据请求标识和请求数据所生成的交易消息插入消息队列,通过撮合引擎对消息队列中的交易消息进行处理得到交易处理结果,根据交易处理结果更新数据库,并将交易处理结果发送给对应的客户端。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置及计算机可读介质。
背景技术
随着互联网系统和金融科技的发展,和数字货币交易所的出现,不管是传统的股票交易市场,模拟炒股市场还是最近比较流行的数字货币交易。他们都面临着一个交易撮合的问题。传统的撮合系统首先面临的就是大交易量下的撮合速度的问题,当交易的人数过多或者交易的量太大的时候,不管是订单的生成速度还是订单的成交速度都会有一定的延迟。如何快速、及时的完成交易的撮合是交易系统面临的问题。
发明内容
本申请实施例提供一种数据处理方法,可以提高数据处理的效率。
一种数据处理方法,包括:
通过客户端向均衡服务器发送交易请求;
所述均衡服务器在接收到所述交易请求的情况下,从至少两个交易服务器中选择负载最小的目标交易服务器,并将所述交易请求发送至所述目标交易服务器;
在所述交易请求通过安全验证的情况下,通过所述目标交易服务器接收所述交易请求,对所述交易请求分配请求标识,将所述请求标识和所述交易请求中的请求数据存储到数据库中,将根据所述请求标识和请求数据所生成的交易消息插入消息队列,通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,根据所述交易处理结果更新所述数据库,并将所述交易处理结果发送给对应的所述客户端。
进一步地,所述通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,包括:
在所述消息队列中存在交易消息的情况下,通过所述撮合引擎从所述消息队列包含的交易消息中获取目标交易消息;
从缓存集群中读取所述目标交易消息的交易状态,其中,所述交易状态包括可交易、已完成和已撤销;
在所述目标交易消息的交易状态为可交易的情况下,通过撮合引擎对所述目标交易消息进行处理得到交易处理结果;
在所述目标交易消息的交易状态为已撤销的情况下,丢弃所述目标交易消息。
进一步地,所述通过撮合引擎对所述目标交易消息进行处理得到交易处理结果之后,还包括:
在所述目标交易消息的撮合处理成功的情况下,根据所述交易处理结果得到所述目标交易消息的交易状态,并根据所述目标交易消息的交易状态更新所述缓存集群;
在所述目标交易消息的撮合处理失败的情况下,将所述目标交易消息重新插入所述消息队列。
进一步地,所述消息队列包括第一消息队列和第二消息队列,所述将根据所述请求标识和请求数据所生成的交易消息插入消息队列,包括:
根据所述交易请求确定所述交易消息的交易类型;
在所述交易消息为第一交易类型的情况下,将所述交易消息插入所述第一消息队列中;
在所述交易消息为第二交易类型的情况下,将所述交易消息插入所述第二消息队列中。
进一步地,所述通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,包括:
通过撮合引擎依次读取所述第一消息队列中的第一交易消息和所述第二消息队列中的第二交易消息,并将读取到的所述第一交易消息和所述第二交易消息进行匹配;
在所述第一交易消息和所述第二交易消息匹配的情况下,得到所述第一交易消息和所述第二交易消息交易成功的结果;
在所述第一交易消息和所述第二交易消息不匹配的情况下,得到所述第一交易消息和所述第二交易消息交易失败的结果。
进一步地,所述撮合引擎中包括多个撮合线程;所述通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,包括:
通过所述撮合引擎中的撮合线程对所述消息队列中的交易消息进行处理得到交易处理结果。
进一步地,所述消息队列为一个或多个;所述撮合引擎中还包括监控服务,所述方法还包括:
通过所述监控服务实时获取所述撮合引擎中包含的所述撮合线程的个数和各个所述撮合线程的负载数据,根据所述撮合线程的个数和各个所述撮合线程的负载数据,创建或删除所述撮合引擎中的撮合线程以及调整各所述撮合线程的任务分配;或
通过所述监控服务实时统计所述消息队列的队列数量,根据所述消息队列的队列数量创建或删除所述消息队列,以及调节各所述消息队列中的交易消息。
一种数据处理系统,包括:
客户端,用于向均衡服务器发送交易请求;
均衡服务器,用于在接收到所述交易请求的情况下,从至少两个交易服务器中选择负载最小的目标交易服务器,并将所述交易请求发送至所述目标交易服务器;
目标交易服务器,用于在所述交易请求通过安全验证的情况下,接收所述交易请求,对所述交易请求分配请求标识,将所述请求标识和所述交易请求中的请求数据存储到数据库中,将根据所述请求标识和请求数据所生成的交易消息插入消息队列,通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,根据所述交易处理结果更新所述数据库,并将所述交易处理结果发送给对应的所述客户端。
一种电子设备,包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时实现上述方法。
一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述方法。
上述数据处理方法、装置及计算机可读介质,客户端可以向均衡服务器发送交易请求,均衡服务器会根据负载情况选择相应的目标交易服务器,目标交易服务器再通过交易队列存储交易消息,并从交易队列中读取交易消息进行处理。从而保证交易消息在处理时的负载均衡,提高数据处理的效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为一个实施例中数据处理方法的流程图。
图2为一个实施例中数据处理方法的系统架构图。
图3为一个实施例中处理交易消息的逻辑框架图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
图1为一个实施例中数据处理方法的流程图,如图1所示,该数据处理方法包括:
步骤102,通过客户端向均衡服务器发送交易请求。
在一个实施例中,客户端是指跟用户交互的电子设备,用户可以通过客户端向服务器发送或接收数据,从而实现数据交互。均衡服务器跟客户端连接,均衡服务器可以接收客户端发送的数据。交易请求是表示产生交易行为意愿的请求,即希望与其他客户端发生交易的请求。
步骤104,均衡服务器在接收到交易请求的情况下,从至少两个交易服务器中选择负载最小的目标交易服务器,并将交易请求发送至目标交易服务器。
均衡服务器可以接收多个客户端发送的交易请求,然后进行均衡负载,找到负载最小的服务器来处理该交易请求。具体的,处理交易请求的服务器有多个,负载均衡服务器可以从多个交易服务器中选择负载最小的交易服务器来处理该交易请求。
可以理解的是,负载服务器可以根据各个交易服务器的CPU(central processingunit,中央处理器)占用率、内存占用率等资源的占用情况,来判断交易服务器的负载情况,从而选择负载最小的交易服务器来处理请求,提高请求的处理速度。
步骤106,在交易请求通过安全验证的情况下,通过目标交易服务器接收交易请求,对交易请求分配请求标识,将请求标识和交易请求中的请求数据存储到数据库中,将根据请求标识和请求数据所生成的交易消息插入消息队列,通过撮合引擎对消息队列中的交易消息进行处理得到交易处理结果,根据交易处理结果更新数据库,并将交易处理结果发送给对应的客户端。
目标服务器在接收交易请求之前,需要先对交易请求的权限、安全性等安全验证,来确保接收到的交易请求是安全的。例如,交易请求中包括预设关键字或者该交易请求符合预设的格式,则认为该交易请求是安全的。在交易请求是安全的情况下,目标交易服务器接收到交易请求,并对该交易请求分配对应的请求标识(ID),该请求标识用来唯一标记一个交易请求。
分配请求标识之后,目标交易服务器会将分配的请求标识以及交易请求中包含的相关请求数据存储到数据库中,用来存储该交易请求处理过程中产生的相关数据。
在一个实施例中,目标交易服务器还会根据请求标识和请求数据生成一个交易消息,该交易消息会插入到消息队列中。目标交易服务器在处理交易消息会从消息队列中读取。该消息队列中的交易消息可以根据时间、类型等进行排序,以确保交易消息可以按序处理。
目标交易服务器中可以包括撮合引擎,专门通过该撮合引擎对消息队列中的交易消息。对交易消息进行处理得到交易处理结果,交易处理结果会更新到数据库中相应交易消息的交易数据中,并且会将交易处理结果发送给对应的客户端进行同步。
上述实施例提供的数据处理方法中,客户端可以向均衡服务器发送交易请求,均衡服务器会根据负载情况选择相应的目标交易服务器,目标交易服务器再通过交易队列存储交易消息,并从交易队列中读取交易消息进行处理。从而保证交易消息在处理时的负载均衡,提高数据处理的效率。
图2为一个实施例中数据处理方法的系统架构图。如图2所示,系统的前端是各个交易客户端,交易客户端的交互可以是各种形式的,例如交互形式可以包括web(WorldWide Web,全球广域网)浏览器、APP(Application,应用程序)、小程序等。交易系统对外提供HTTP(HyperText Transfer Protocol,超文本传输协议)服务,供交易客户端调用。当交易客户端发起交易请求,交易请求会通过负载服务器找到系统负载比较低的交易服务器,并通过交易服务器网关的安全性校验等一系列操作,最后把交易请求发送给交易服务器的撮合引擎。撮合引擎通过和缓存集群、消息队列和数据库的交互之后,得到最终的交易结果,并将处理结果返回给交易客户端。
在一个实施例中,通过撮合引擎对消息队列中的交易消息进行处理得到交易处理结果,包括:在消息队列中存在交易消息的情况下,通过撮合引擎从消息队列包含的交易消息中获取目标交易消息;从缓存集群中读取目标交易消息的交易状态,其中,交易状态包括可交易、已完成和已撤销;在目标交易消息的交易状态为可交易的情况下,通过撮合引擎对目标交易消息进行处理得到交易处理结果;在目标交易消息的交易状态为已撤销的情况下,丢弃目标交易消息。
在交易消息的处理过程中,目标交易服务器会将交易消息的交易状态存储在缓存集群中,这样在处理的时候就会根据交易状态来判断交易消息的处理状态。具体的,该交易状态包括可交易、已完成和已撤销,可交易表示该交易消息处于可以交易的状态,已完成表示交易消息已经完成处理,已撤销表示该交易消息已经撤销。
目标交易服务器的撮合引擎会先从消息队列中读取交易消息,然后判断交易消息的交易状态。具体的,读取交易消息的顺序在本实施例中不限,例如可以顺序依次读取,也可以随机读取。
从消息队列中读取需要处理的目标交易消息,当目标交易消息为可交易时,则可以通过撮合引擎对该目标交易消息进行处理;当目标交易消息为已撤销时,则可以直接将该目标交易消息从消息队列中移除并丢弃;当目标交易消息为已完成时,则可以将目标交易消息从消息队列中移除并丢弃。
在本申请提供的实施例中,通过撮合引擎对目标交易消息进行处理得到交易处理结果之后,还包括:在目标交易消息的撮合处理成功的情况下,根据交易处理结果得到目标交易消息的交易状态,并根据目标交易消息的交易状态更新缓存集群;在目标交易消息的撮合处理失败的情况下,将目标交易消息重新插入消息队列。
对目标交易消息处理之后,会根据目标交易消息的处理结果得到交易状态,然后将该目标交易消息的交易状态更新到缓存集群中。具体的,若目标交易消息的交易成功,则会将该目标交易消息的交易状态改为已完成;若目标交易消息的交易失败,则会将目标交易消息重新插入该消息队列,以便后续重新对该目标交易消息进行处理。
在本申请提供的实施例中,消息队列包括第一消息队列和第二消息队列,将根据请求标识和请求数据所生成的交易消息插入消息队列,包括:根据交易请求确定交易消息的交易类型;在交易消息为第一交易类型的情况下,将交易消息插入第一消息队列中;在交易消息为第二交易类型的情况下,将交易消息插入第二消息队列中。
可以理解的是,客户端在产生交易行为的时候,会有买方和卖方。根据不同的买卖角色可以将交易消息分为不同的类型,具体可以包括第一交易类型和第二交易类型,分别表示买方消息和卖方消息。目标交易服务器在对交易消息进行处理的时候,会将不同类型的交易消息分别通过不同的消息队列来存储。在对交易消息进行处理的时候,跟分别对不同类型的交易消息进行撮合交易。
在本申请提供的实施例中,通过撮合引擎对消息队列中的交易消息进行处理得到交易处理结果,包括:通过撮合引擎依次读取第一消息队列中的第一交易消息和第二消息队列中的第二交易消息,并将读取到的第一交易消息和第二交易消息进行匹配;在第一交易消息和第二交易消息匹配的情况下,得到第一交易消息和第二交易消息交易成功的结果;在第一交易消息和第二交易消息不匹配的情况下,得到第一交易消息和第二交易消息交易失败的结果。
撮合引擎对交易消息的处理过程具体可以为:依次第一消息队列中的第一交易消息和第二消息队列中的第二交易消息,并将读取到的第一交易消息和第二交易消息进行匹配。若第一交易消息和第二交易消息匹配,则说明第一交易消息和第二交易消息可以达成交易,则可以得到处理成功的消息。
例如,第一消息队列中包括消息A、消息B、消息C,第二消息队列中包括消息D、消息E、消息F、消息G、消息H、消息I,那么可以首先读取第一消息队列中的消息A,再按照消息D→消息E→消息F→消息G→消息H→消息I的顺序依次跟消息A进行匹配。
在本申请提供的实施例中,撮合引擎中包括多个撮合线程;通过撮合引擎对消息队列中的交易消息进行处理得到交易处理结果,包括:通过撮合引擎中的撮合线程对消息队列中的交易消息进行处理得到交易处理结果。
撮合引擎为由多个撮合线程构成的撮合线程池,通过撮合线程池中的撮合线程对交易消息进行处理。例如,当撮合线程池中有处于空闲状态的撮合线程时,该处于空闲状态的撮合线程就会读取消息队列中的交易消息,并开始对读取到的交易消息进行处理。
在本申请提供的实施例中,消息队列为一个或多个;撮合引擎中还包括监控服务,方法还包括:通过监控服务实时获取撮合引擎中包含的撮合线程的个数和各个撮合线程的负载数据,根据撮合线程的个数和各个撮合线程的负载数据,创建或删除撮合引擎中的撮合线程以及调整各撮合线程的任务分配;或通过监控服务实时统计消息队列的队列数量,根据消息队列的队列数量创建或删除消息队列,以及调节各消息队列中的交易消息。
撮合引擎中还把控监控服务,通过监控服务可以实时监控撮合线程池中撮合线程的负载情况以及消息队列中交易消息的处理情况,以便动态地调节撮合线程和消息队列,减少资源的占用。
具体的,撮合引擎会实时获取撮合引擎中包含的撮合线程的个数和各个撮合线程的负载数据,然后根据撮合线程的个数和各个撮合线程的负载数据,来动态创建或删除撮合线程以及调整撮合线程的任务分配。例如,获取处于空闲状态的撮合线程的空闲时间,当该空闲时间超过时长阈值,则将该撮合线程从撮合线程池中删除;获取统计时长内各撮合线程的平均负载数据,当该平均负载数据在统计时长内持续大于负载阈值,则创建新的撮合线程,通过创建的新的撮合线程对交易消息进行处理。
监控服务还会实时统计消息队列的数量,动态地创建或删除消息队列,以及调节消息队列中的交易消息。例如,每个撮合引擎可以分别处理一个交易队列中的交易消息,当各消息队列中的交易消息的数量严重不均衡的时候,则可以在消息队列之间移动交易消息。
图3为一个实施例中处理交易消息的逻辑框架图。如图3所示,客户端发送的交易消息被存储到排序过的消息队列,并在缓存集群中保留对应的交易状态。消息队列分为买交易的队列和卖交易的队列,这些消息队列的头部会存放最先需要交易的交易消息的标识。然后通过撮合线程池中的线程监听消息队列中的交易消息,当消息队列中有交易消息就会取出,具体首先从缓存集群中取出该交易消息的交易状态,如果该交易消息是可交易的,则继续进行处理,如果是已撤销的,则丢弃该交易消息。验证完交易消息的有效性之后,对交易消息进行价格的匹配,如果匹配成功则交易消息处理完成,并更新缓存集群中该交易消息的交易状态。如果匹配失败,则说明交易条件不满足,这时候将交易消息重新插入消息队列。如果是已撤销的交易消息,则在缓存集群中更新该交易消息的交易状态,以供撮合线程匹配状态使用。为了提升系统性能,并充分利用高峰期和非高峰期的资源,撮合引擎专门创建了监控服务,该监控服务有两个作用:第一、用来监控消息队列的个数和每个消息队列中的交易消息个数。根据负载的大小,可以动态创建、删除消息队列,同时可以将交易消息过多的消息队列中的交易消息移动到交易消息比较少的消息队列中,实现消息队列的动态负载均衡;第二,用来监控撮合线程池中线程的个数和各个线程的负载情况,从而动态调整线程池中线程的个数和分配情况。
在本申请实施例中提供一种数据处理系统,包括:
客户端,用于向均衡服务器发送交易请求;
均衡服务器,用于在接收到所述交易请求的情况下,从至少两个交易服务器中选择负载最小的目标交易服务器,并将所述交易请求发送至所述目标交易服务器;
目标交易服务器,用于在所述交易请求通过安全验证的情况下,接收所述交易请求,对所述交易请求分配请求标识,将所述请求标识和所述交易请求中的请求数据存储到数据库中,将根据所述请求标识和请求数据所生成的交易消息插入消息队列,通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,根据所述交易处理结果更新所述数据库,并将所述交易处理结果发送给对应的所述客户端。
上述实施例提供的数据处理系统,客户端可以向均衡服务器发送交易请求,均衡服务器会根据负载情况选择相应的目标交易服务器,目标交易服务器再通过交易队列存储交易消息,并从交易队列中读取交易消息进行处理。从而保证交易消息在处理时的负载均衡,提高数据处理的效率。
在一个实施例中,目标交易服务器还用于在所述消息队列中存在交易消息的情况下,通过所述撮合引擎从所述消息队列包含的交易消息中获取目标交易消息;从缓存集群中读取所述目标交易消息的交易状态,其中,所述交易状态包括可交易、已完成和已撤销;在所述目标交易消息的交易状态为可交易的情况下,通过撮合引擎对所述目标交易消息进行处理得到交易处理结果;在所述目标交易消息的交易状态为已撤销的情况下,丢弃所述目标交易消息。
在一个实施例中,目标交易服务器还用于在所述目标交易消息的撮合处理成功的情况下,根据所述交易处理结果得到所述目标交易消息的交易状态,并根据所述目标交易消息的交易状态更新所述缓存集群;在所述目标交易消息的撮合处理失败的情况下,将所述目标交易消息重新插入所述消息队列。
在一个实施例中,所述消息队列包括第一消息队列和第二消息队列,目标交易服务器还用于根据所述交易请求确定所述交易消息的交易类型;在所述交易消息为第一交易类型的情况下,将所述交易消息插入所述第一消息队列中;在所述交易消息为第二交易类型的情况下,将所述交易消息插入所述第二消息队列中。
在一个实施例中,目标交易服务器还用于通过撮合引擎依次读取所述第一消息队列中的第一交易消息和所述第二消息队列中的第二交易消息,并将读取到的所述第一交易消息和所述第二交易消息进行匹配;在所述第一交易消息和所述第二交易消息匹配的情况下,得到所述第一交易消息和所述第二交易消息交易成功的结果;在所述第一交易消息和所述第二交易消息不匹配的情况下,得到所述第一交易消息和所述第二交易消息交易失败的结果。
在一个实施例中,所述撮合引擎中包括多个撮合线程,目标交易服务器还用于通过所述撮合引擎中的撮合线程对所述消息队列中的交易消息进行处理得到交易处理结果。
在一个实施例中,所述消息队列为一个或多个,所述撮合引擎中还包括监控服务,目标交易服务器还用于通过所述监控服务实时获取所述撮合引擎中包含的所述撮合线程的个数和各个所述撮合线程的负载数据,根据所述撮合线程的个数和各个所述撮合线程的负载数据,创建或删除所述撮合引擎中的撮合线程以及调整各所述撮合线程的任务分配;或通过所述监控服务实时统计所述消息队列的队列数量,根据所述消息队列的队列数量创建或删除所述消息队列,以及调节各所述消息队列中的交易消息。
上述客户端、负载服务器和交易服务器可以包括输入装置、输出装置、处理器和存储器等。输入装置、输出装置、存储器和处理器之间通过总线相互连接。
存储器包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read至only memory,ROM)、可擦除可编程只读存储器(erasable programmable readonly memory,EPROM)、或便携式只读存储器(compact disc read至only memory,CD至ROM),该存储器用于相关指令及数据。
输入装置用于输入数据和/或信号,以及输出装置用于输出数据和/或信号。输出装置和输入装置可以是独立的器件,也可以是一个整体的器件。
处理器可以包括是一个或多个处理器,例如包括一个或多个中央处理器(centralprocessing unit,CPU),在处理器是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。处理器还可以包括一个或多个专用处理器,专用处理器可以包括GPU、FPGA等,用于进行加速处理。
存储器用于存储网络设备的程序代码和数据。
处理器用于调用该存储器中的程序代码和数据,执行上述方法实施例中的步骤。具体可参见方法实施例中的描述,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read至onlymemory,ROM),或随机存储存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
以上上述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
通过客户端向均衡服务器发送交易请求;
所述均衡服务器在接收到所述交易请求的情况下,从至少两个交易服务器中选择负载最小的目标交易服务器,并将所述交易请求发送至所述目标交易服务器;
在所述交易请求通过安全验证的情况下,通过所述目标交易服务器接收所述交易请求,对所述交易请求分配请求标识,将所述请求标识和所述交易请求中的请求数据存储到数据库中,将根据所述请求标识和请求数据所生成的交易消息插入消息队列,通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,根据所述交易处理结果更新所述数据库,并将所述交易处理结果发送给对应的所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,包括:
在所述消息队列中存在交易消息的情况下,通过所述撮合引擎从所述消息队列包含的交易消息中获取目标交易消息;
从缓存集群中读取所述目标交易消息的交易状态,其中,所述交易状态包括可交易、已完成和已撤销;
在所述目标交易消息的交易状态为可交易的情况下,通过撮合引擎对所述目标交易消息进行处理得到交易处理结果;
在所述目标交易消息的交易状态为已撤销的情况下,丢弃所述目标交易消息。
3.根据权利要求2所述的方法,其特征在于,所述通过撮合引擎对所述目标交易消息进行处理得到交易处理结果之后,还包括:
在所述目标交易消息的撮合处理成功的情况下,根据所述交易处理结果得到所述目标交易消息的交易状态,并根据所述目标交易消息的交易状态更新所述缓存集群;
在所述目标交易消息的撮合处理失败的情况下,将所述目标交易消息重新插入所述消息队列。
4.根据权利要求1所述的方法,其特征在于,所述消息队列包括第一消息队列和第二消息队列,所述将根据所述请求标识和请求数据所生成的交易消息插入消息队列,包括:
根据所述交易请求确定所述交易消息的交易类型;
在所述交易消息为第一交易类型的情况下,将所述交易消息插入所述第一消息队列中;
在所述交易消息为第二交易类型的情况下,将所述交易消息插入所述第二消息队列中。
5.根据权利要求4所述的方法,其特征在于,所述通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,包括:
通过撮合引擎依次读取所述第一消息队列中的第一交易消息和所述第二消息队列中的第二交易消息,并将读取到的所述第一交易消息和所述第二交易消息进行匹配;
在所述第一交易消息和所述第二交易消息匹配的情况下,得到所述第一交易消息和所述第二交易消息交易成功的结果;
在所述第一交易消息和所述第二交易消息不匹配的情况下,得到所述第一交易消息和所述第二交易消息交易失败的结果。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述撮合引擎中包括多个撮合线程;所述通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,包括:
通过所述撮合引擎中的撮合线程对所述消息队列中的交易消息进行处理得到交易处理结果。
7.根据权利要求6所述的方法,其特征在于,所述消息队列为一个或多个;所述撮合引擎中还包括监控服务,所述方法还包括:
通过所述监控服务实时获取所述撮合引擎中包含的所述撮合线程的个数和各个所述撮合线程的负载数据,根据所述撮合线程的个数和各个所述撮合线程的负载数据,创建或删除所述撮合引擎中的撮合线程以及调整各所述撮合线程的任务分配;或
通过所述监控服务实时统计所述消息队列的队列数量,根据所述消息队列的队列数量创建或删除所述消息队列,以及调节各所述消息队列中的交易消息。
8.一种数据处理系统,其特征在于,包括:
客户端,用于向均衡服务器发送交易请求;
均衡服务器,用于在接收到所述交易请求的情况下,从至少两个交易服务器中选择负载最小的目标交易服务器,并将所述交易请求发送至所述目标交易服务器;
目标交易服务器,用于在所述交易请求通过安全验证的情况下,接收所述交易请求,对所述交易请求分配请求标识,将所述请求标识和所述交易请求中的请求数据存储到数据库中,将根据所述请求标识和请求数据所生成的交易消息插入消息队列,通过撮合引擎对所述消息队列中的交易消息进行处理得到交易处理结果,根据所述交易处理结果更新所述数据库,并将所述交易处理结果发送给对应的所述客户端。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010561150.5A CN111708637A (zh) | 2020-06-18 | 2020-06-18 | 一种数据处理方法、装置及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010561150.5A CN111708637A (zh) | 2020-06-18 | 2020-06-18 | 一种数据处理方法、装置及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111708637A true CN111708637A (zh) | 2020-09-25 |
Family
ID=72541263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010561150.5A Pending CN111708637A (zh) | 2020-06-18 | 2020-06-18 | 一种数据处理方法、装置及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708637A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112346886A (zh) * | 2020-10-23 | 2021-02-09 | 上海优方信息科技服务股份有限公司 | 交易数据处理方法、装置、存储介质及服务器 |
CN112836838A (zh) * | 2021-02-10 | 2021-05-25 | 北京声智科技有限公司 | 预约请求处理方法、装置、设备及存储介质 |
CN113377605A (zh) * | 2021-02-10 | 2021-09-10 | 北京声智科技有限公司 | 访问监控方法、装置、服务器及计算机可读存储介质 |
CN113609199A (zh) * | 2021-07-27 | 2021-11-05 | 远景智能国际私人投资有限公司 | 数据库系统、服务器及存储介质 |
CN115222538A (zh) * | 2022-08-15 | 2022-10-21 | 深圳星云智联科技有限公司 | 行情快照数据计算方法、装置、电子设备和存储介质 |
CN115577206A (zh) * | 2022-12-06 | 2023-01-06 | 广东新禾道信息科技有限公司 | 基于互联网的房屋交易网签数据处理方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932472A (zh) * | 2012-11-13 | 2013-02-13 | 深圳市路友网络科技有限公司 | 一种数据处理方法以及通信系统 |
CN104392377A (zh) * | 2014-12-09 | 2015-03-04 | 四川诚品电子商务有限公司 | 一种云交易系统 |
CN205375564U (zh) * | 2015-12-29 | 2016-07-06 | 航天信息股份有限公司 | Pos交易处理装置 |
CN109598611A (zh) * | 2018-10-09 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 一种交易的处理方法、交易网关、交易服务器及交易系统 |
CN111127198A (zh) * | 2019-11-13 | 2020-05-08 | 中国电力科学研究院有限公司 | 一种电力市场交易服务器、市场主体终端及撮合方法 |
-
2020
- 2020-06-18 CN CN202010561150.5A patent/CN111708637A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932472A (zh) * | 2012-11-13 | 2013-02-13 | 深圳市路友网络科技有限公司 | 一种数据处理方法以及通信系统 |
CN104392377A (zh) * | 2014-12-09 | 2015-03-04 | 四川诚品电子商务有限公司 | 一种云交易系统 |
CN205375564U (zh) * | 2015-12-29 | 2016-07-06 | 航天信息股份有限公司 | Pos交易处理装置 |
CN109598611A (zh) * | 2018-10-09 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 一种交易的处理方法、交易网关、交易服务器及交易系统 |
CN111127198A (zh) * | 2019-11-13 | 2020-05-08 | 中国电力科学研究院有限公司 | 一种电力市场交易服务器、市场主体终端及撮合方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112346886A (zh) * | 2020-10-23 | 2021-02-09 | 上海优方信息科技服务股份有限公司 | 交易数据处理方法、装置、存储介质及服务器 |
CN112836838A (zh) * | 2021-02-10 | 2021-05-25 | 北京声智科技有限公司 | 预约请求处理方法、装置、设备及存储介质 |
CN113377605A (zh) * | 2021-02-10 | 2021-09-10 | 北京声智科技有限公司 | 访问监控方法、装置、服务器及计算机可读存储介质 |
CN113609199A (zh) * | 2021-07-27 | 2021-11-05 | 远景智能国际私人投资有限公司 | 数据库系统、服务器及存储介质 |
CN113609199B (zh) * | 2021-07-27 | 2023-09-12 | 远景智能国际私人投资有限公司 | 数据库系统、服务器及存储介质 |
CN115222538A (zh) * | 2022-08-15 | 2022-10-21 | 深圳星云智联科技有限公司 | 行情快照数据计算方法、装置、电子设备和存储介质 |
CN115222538B (zh) * | 2022-08-15 | 2022-12-13 | 深圳星云智联科技有限公司 | 行情快照数据计算方法、装置、电子设备和存储介质 |
CN115577206A (zh) * | 2022-12-06 | 2023-01-06 | 广东新禾道信息科技有限公司 | 基于互联网的房屋交易网签数据处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111708637A (zh) | 一种数据处理方法、装置及计算机可读介质 | |
US11128603B2 (en) | Method and system for providing a transaction forwarding service in blockchain implementations | |
CN106095572B (zh) | 一种大数据处理的分布式调度系统及方法 | |
US8190743B2 (en) | Most eligible server in a common work queue environment | |
US20210248604A1 (en) | Electronic-certificate-based interaction methods and apparatuses, and electronic devices | |
CN109076024A (zh) | 数据控制方法及终端设备 | |
CN108933829A (zh) | 一种负载均衡方法及装置 | |
CN107360122B (zh) | 防止恶意请求的方法和装置 | |
CN111641563B (zh) | 基于分布式场景的流量自适应方法与系统 | |
WO2021217916A1 (zh) | 时间序列数据分段构建方法、装置、计算机设备及存储介质 | |
CN109005208B (zh) | 用于推送信息的方法和装置 | |
CN112508581A (zh) | 委托订单风险控制方法、系统、计算机设备和存储介质 | |
CN113361913A (zh) | 一种通信业务编排方法、装置、计算机设备及存储介质 | |
CN111917659A (zh) | 并发数据传输方法、系统、装置及计算机可读存储介质 | |
CN111597041B (zh) | 一种分布式系统的调用方法、装置、终端设备及服务器 | |
CN110610365A (zh) | 一种识别交易请求的方法和装置 | |
JP2004348192A (ja) | Job分配制御方法 | |
CN112968769B (zh) | 一种区块链中随机数的生成方法及装置 | |
CN111726266B (zh) | 热点数据分桶方法、系统和计算机设备 | |
CN115421922A (zh) | 一种分布式系统的限流方法、装置、设备、介质及产品 | |
CN112181599B (zh) | 模型训练方法、装置及存储介质 | |
CN109995834A (zh) | 大流量数据处理方法、装置、计算设备及存储介质 | |
CN109919767B (zh) | 交易风险管理方法、装置及设备 | |
CN109510816B (zh) | 服务请求有效性验证方法、客户端及服务器 | |
CN112910643A (zh) | 一种区块链中随机数的生成方法及装置 |
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 |