CN107562803A - 数据供应系统及方法、终端 - Google Patents

数据供应系统及方法、终端 Download PDF

Info

Publication number
CN107562803A
CN107562803A CN201710670122.5A CN201710670122A CN107562803A CN 107562803 A CN107562803 A CN 107562803A CN 201710670122 A CN201710670122 A CN 201710670122A CN 107562803 A CN107562803 A CN 107562803A
Authority
CN
China
Prior art keywords
data
inquiry
request
inquiry request
module
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.)
Granted
Application number
CN201710670122.5A
Other languages
English (en)
Other versions
CN107562803B (zh
Inventor
汤奇峰
李鑫堂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Data Trading Center Ltd
Original Assignee
Shanghai Data Trading Center Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Data Trading Center Ltd filed Critical Shanghai Data Trading Center Ltd
Priority to CN201710670122.5A priority Critical patent/CN107562803B/zh
Publication of CN107562803A publication Critical patent/CN107562803A/zh
Application granted granted Critical
Publication of CN107562803B publication Critical patent/CN107562803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种数据供应系统及方法、终端,数据供应系统包括:至少一个数据缓存,适于存储多种数据;至少一个数据查询模块,适于接收需求方的查询请求,并根据所述查询请求在所述至少一个数据缓存中对所述多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方;至少一个数据路由模块,适于在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,根据所述查询请求调用对应的供方服务器,并根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存。通过本发明技术方案可以提高数据供应系统的性能。

Description

数据供应系统及方法、终端
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据供应系统及方法、终端。
背景技术
在数据流通过程中,在线实时数据交易系统能提供持续的、按需供应的能力,系统性能的提升能提高系统的供应量,多个数据源不仅能提高数据供应的稳定性,也能根据业务需求提供数据融合能力。对于在线实时数据交易系统,不仅需要具备单点高性能,也必须具备可扩展性,提升系统整体的供应能力。如在广告实时竞价(Real Time Bidding,RTB)中,从开始竞价到完成投放,整个过程需要在100毫秒(ms)内完成,由于涉及到多个步骤和关联方,对于数据的查询和获取要求在几毫秒内完成,对数据供应平台提出了比较高的要求,例如对数据供应系统的吞吐量(Throughput)、每秒查询率(Query Per Second,QPS)、响应时间(Response Time,RT)、并发数等指标,都有极高的要求。
现有技术中,数据供应系统采用单一应用,结构简单,面向前端服务和后端多需方路由服务部署在同一应用中,单机数据库Redis做数据缓存。
但是,现有技术中数据供应系统具有以下缺点:1.吞吐量低、QPS低;由于同一个应用服务需要进行多供方路由服务,占用大量系统资源,导致系统处理能力低下,系统在遇到前端高并发,大吞吐量情况下,系统无法支撑,中央处理器(Central Processing Unit,CPU)使用率居高不下,很容易导致系统宕机。2.响应时间长;原系统结构前端请求和后端多供方路由服务同时进行,整体处理流程长,导致应用响应时间较长,在整个系统的响应时间比较长,无法满足需求方系统响应时间要求。3.可扩展能力弱;原系统结构下,当系统在需要提高服务能力时进行系统扩展的时候,很难根据需方请求或者多供方路由进行某方面的扩展,而只能通过增加整体服务器的方式扩展,在扩展后扩展增益效果不明显,系统吞吐量及QPS非线性增长,系统可扩展能力弱。4.系统可靠性差;原系统当外部供方系统出现问题或网络出现抖动的情况下,多供方路由会变慢,导致系统请求堆积,系统处理能力变弱。在外部系统出现问题时,导致本系统很容易宕机,系统可靠性差。5.容灾性差;系统采用单机redis缓存部署,当redis出现问题时,整个系统将无法使用,必须等待redis缓存恢复才能使用。当单机redis宕机后,数据容易丢失,不易恢复,整个系统容灾性差。
发明内容
本发明解决的技术问题是如何提高数据供应系统的性能。
为解决上述技术问题,本发明实施例提供一种数据供应系统,数据供应系统包括:至少一个数据缓存,适于存储多种数据;至少一个数据查询模块,适于接收需求方的查询请求,并根据所述查询请求在所述至少一个数据缓存中对所述多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方;至少一个数据路由模块,适于在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,根据所述查询请求调用对应的供方服务器,并根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存。
可选的,如果所述数据查询模块在所述至少一个数据缓存中查询到与所述查询请求相匹配的数据,则将查询到的数据作为所述第一查询结果反馈至所述需求方;如果所述数据查询模块未查询到与所述查询请求相匹配的数据,则生成提示信息作为所述第一查询结果反馈至所述需求方,所述提示信息用以提示未查询到与所述查询请求相匹配的数据。
可选的,如果所述第二查询结果表明所述供方服务器查询到与所述查询请求相匹配的数据,则所述数据路由模块将查询到的数据加载至所述至少一个数据缓存;如果所述第二查询结果表明所述供方服务器未查询到与所述查询请求相匹配的数据,则所述数据路由模块生成标识信息并加载至所述至少一个数据缓存。
可选的,所述数据供应系统还包括:至少一个消息队列模块,适于在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,接收所述至少一个数据查询模块推送的所述查询请求,并进行存储,所述数据路由模块从所述消息队列模块获取所述查询请求。
可选的,所述至少一个数据查询模块按照所述查询请求的请求时间将所述查询请求推送至所述至少一个消息队列模块,以形成消息队列;所述数据路由模块依次消费所述消息队列中的所述查询请求。
可选的,所述消息队列模块采用非易失性存储器存储所述查询请求。
可选的,所述至少一个数据缓存和所述至少一个消息队列模块采用集群的方式进行部署。
可选的,所述数据供应系统还包括:反向代理和负载均衡模块,适于接收所述查询请求,并将多个查询请求均匀分发至所述至少一个数据查询模块。
可选的,每一数据缓存包括主节点和从节点,所述从节点中存储的数据为所述主节点中存储的数据的备份;所述主节点允许读操作或写操作,所述从节点与所述主节点互为代替单元。
本发明实施例还公开了一种数据供应方法,数据供应方法包括:接收需求方的查询请求;根据所述查询请求在至少一个数据缓存中对多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方,所述至少一个数据缓存中存储所述多种数据;在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,根据所述查询请求调用对应的供方服务器,并根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存。
可选的,所述根据所述查询请求在至少一个数据缓存中对多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方包括:如果在所述至少一个数据缓存中查询到与所述查询请求相匹配的数据,则将查询到的数据作为所述第一查询结果反馈至所述需求方;如果未查询到与所述查询请求相匹配的数据,则生成提示信息作为所述第一查询结果反馈至所述需求方,所述提示信息用以提示未查询到与所述查询请求相匹配的数据。
可选的,所述根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存包括:如果所述第二查询结果表明所述供方服务器查询到与所述查询请求相匹配的数据,则将查询到的数据加载至所述至少一个数据缓存;如果所述第二查询结果表明所述供方服务器未查询到与所述查询请求相匹配的数据,则生成标识信息并加载至所述至少一个数据缓存。
可选的,所述数据供应方法还包括:在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,接收所述至少一个数据查询模块推送的所述查询请求,并进行存储。
可选的,所述接收所述至少一个数据查询模块推送的所述查询请求包括:按照所述查询请求的请求时间接收所述查询请求推,以形成消息队列。
可选的,采用非易失性存储器存储所述查询请求。
可选的,所述接收需求方的查询请求包括:接收均匀分发的多个查询请求。
可选的,每一数据缓存包括主节点和从节点,所述从节点中存储的数据为所述主节点中存储的数据的备份;所述主节点允许读操作或写操作,所述从节点与所述主节点互为代替单元。
本发明实施例还公开了一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述数据供应方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明技术方案的数据供应系统包括至少一个数据缓存,适于存储多种数据;至少一个数据查询模块,适于接收需求方的查询请求,并根据所述查询请求在所述至少一个数据缓存中对所述多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方;至少一个数据路由模块,适于在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,根据所述查询请求调用对应的供方服务器,并根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存。本发明技术方案的数据查询模块可以及时反馈针对查询请求的第一查询结果,提高了数据供应系统的响应速度;此外,数据路由模块根据查询请求调用供方服务器与查询模块的查询操作是各自独立进行的,避免了需求方等待数据路由模块的加载过程,从而进一步提高了数据供应系统的响应速度,保证了高效的查询速度的同时又可支持高并发,大大增强了大数据量下系统处理能力和并发能力,提高了系统性能。
进一步,所述至少一个数据缓存和所述至少一个消息队列模块采用集群的方式进行部署。本发明技术方案中,通过数据查询模块和数据路由模块的分离,也即前端和后端服务的分离,以及,通过集群方式,可以在系统出现瓶颈后,可通过增加数据查询模块、数据缓存、数据路由模块等方式进行横向扩展,增加整个系统的负载能力;此外,可以通过增加节点对数据缓存进行横向扩展,提高系统存储能力;通过消息队列模块的集群方式可以提升系统处理能力和系统可靠性。
进一步,每一数据缓存包括主节点和从节点,所述从节点中存储的数据为所述主节点中存储的数据的备份;所述主节点允许读操作或写操作,所述从节点与所述主节点互为代替单元。本发明技术方案中,主从节点设计可以把读操作和写操作分离,提高缓存查询效率;此外,通过主从节点的配置,使得缓存具有很强的容灾性。
附图说明
图1是本发明实施例一种数据供应系统的结构示意图;
图2是本发明实施例另一种数据供应系统的结构示意图;
图3是本发明实施例一种数据供应方法的流程图。
具体实施方式
如背景技术中所述,现有技术中数据供应系统具有以下缺点:1.吞吐量低、QPS低;由于同一个应用服务需要进行多供方路由服务,占用大量系统资源,导致系统处理能力低下,系统在遇到前端高并发,大吞吐量情况下,系统无法支撑,中央处理器(CentralProcessing Unit,CPU)使用率居高不下,很容易导致系统宕机。2.响应时间长;原系统结构前端请求和后端多供方路由服务同时进行,整体处理流程长,导致应用响应时间较长,在整个系统的响应时间比较长,无法满足需求方系统响应时间要求。3.可扩展能力弱;原系统结构下,当系统在需要提高服务能力时进行系统扩展的时候,很难根据需方请求或者多供方路由进行某方面的扩展,而只能通过增加整体服务器的方式扩展,在扩展后扩展增益效果不明显,系统吞吐量及QPS非线性增长,系统可扩展能力弱。4.系统可靠性差;原系统当外部供方系统出现问题或网络出现抖动的情况下,多供方路由会变慢,导致系统请求堆积,系统处理能力变弱。在外部系统出现问题时,导致本系统很容易宕机,系统可靠性差。5.容灾性差;系统采用单机redis缓存部署,当redis出现问题时,整个系统将无法使用,必须等待redis缓存恢复才能使用。当单机redis宕机后,数据容易丢失,不易恢复,整个系统容灾性差。
为了解决在线实时数据交易系统的数据供应能力,满足大数据量、高并发,低延迟的要求,本发明技术方案提出一种高性能、可扩展性强的多供方实时数据供应系统架构。
本发明技术方案的数据查询模块可以及时反馈针对查询请求的第一查询结果,提高了数据供应系统的响应速度;此外,数据路由模块根据查询请求调用供方服务器与查询模块的查询操作是各自独立进行的,避免了需求方等待数据路由模块的加载过程,从而进一步提高了数据供应系统的响应速度,保证了高效的查询速度的同时又可支持高并发,大大增强了大数据量下系统处理能力和并发能力,提高了系统性能。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例一种数据供应系统的结构示意图。
如图1所示,数据供应系统10可以包括至少一个数据缓存101、至少一个数据查询模块102和至少一个数据路由模块103。
其中,数据缓存101适于存储多种数据;数据查询模块102适于接收需求方的查询请求,并根据所述查询请求在所述至少一个数据缓存101中对所述多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方;数据路由模块103适于在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,根据所述查询请求调用对应的供方服务器,并根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存101。
具体实施中,由于缓存(cache)的运行速度比较快,因此可以采用缓存存储多种数据。数据缓存101中的多种数据来自多个数据供应方。
具体实施中,需求方有数据需求时,可以向数据供应系统10发送查询请求,数据供应系统10向需求方反馈针对查询请求的数据。具体而言,数据查询模块102在接收到查询请求后,可以根据所述查询请求在所述至少一个数据缓存101中对所述多种数据进行匹配查询,以得到第一查询结果。在这种情况下,第一查询结果可以是与查询请求相匹配的数据,也可以指示未查询到与查询请求相匹配的数据。更具体地,第一查询结果可以是数据查询模块102在数据缓存101中的数据查询命中情况。数据查询模块102可以将第一查询结果反馈至所述需求方,以使得无论数据查询是否命中,需求方都可以快速的得到回复。
本领域技术人员可以理解的是,查询请求与多种数据进行匹配的过程可以采用现有技术中任意可实施的方式,此处不再赘述。
具体实施中,在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,数据路由模块103可以根据所述查询请求调用对应的供方服务器,以获得第二查询结果。具体而言,所述供方服务器可以根据所述查询请求对其提供的数据进行匹配查询,得到所述第二查询结果。供方服务器反馈的第二查询结果可以表示供方服务器的数据查询命中情况。无论供方服务器的数据查询是否命中,数据路由模块103都会将第二查询结果对应的数据信息加载至所述至少一个数据缓存101。
进而,如果第一查询结果表明查询未命中,则需求方可以在一段时间后尝试发送同样的查询请求至数据供应系统10,数据查询模块102可以在数据缓存101中找到与该查询请求相匹配的数据信息,并快速反馈至数据需求方,以避免需求方不必要的等待。
具体而言,数据路由模块103根据不同的查询请求中的订单的相关信息将查询请求分发到不同的供方服务器。需求方在请求时可能每次请求的订单不一样,则后端就会向不同的供应方去请求。数据路由模块103的路由规则可以根据配置文件进行配置。
本发明实施例的数据查询模块可以及时反馈针对查询请求的第一查询结果,提高了数据供应系统的响应速度;此外,数据路由模块根据查询请求调用供方服务器与查询模块的查询操作是各自独立进行的,避免了需求方等待数据路由模块的加载过程,从而进一步提高了数据供应系统的响应速度,保证了高效的查询速度的同时又可支持高并发,大大增强了大数据量下系统处理能力和并发能力,提高了系统性能。
优选地,如果所述数据查询模块102在所述至少一个数据缓存中查询到与所述查询请求相匹配的数据,则将查询到的数据作为所述第一查询结果反馈至所述需求方;如果所述数据查询模块102未查询到与所述查询请求相匹配的数据,则生成提示信息作为所述第一查询结果反馈至所述需求方,所述提示信息用以提示未查询到与所述查询请求相匹配的数据。
相对于现有技术中未查询到与查询请求相匹配的数据时,则继续在数据源提供的数据中进行匹配查询,前端请求和后端多供方路由服务同时进行,导致整体处理流程长,整个系统的响应时间比较长,无法满足需求方系统响应时间要求;本发明实施例的数据查询模块102的第一查询结果表明是否查询到与查询请求相匹配的数据,都会将第一查询结果反馈至需求方。也就是说,数据查询模块102未查询到与所述查询请求相匹配的数据时,则生成提示信息作为所述第一查询结果反馈至所述需求方,那么需求方根据该提示信息可以获知未查询到与所述查询请求相匹配的数据,并可以停止发送该查询请求或者稍后再尝试发送该查询请求。
优选地,如果所述第二查询结果表明所述供方服务器查询到与所述查询请求相匹配的数据,则所述数据路由模块103将查询到的数据加载至所述至少一个数据缓存;如果所述第二查询结果表明所述供方服务器未查询到与所述查询请求相匹配的数据,则所述数据路由模块103生成标识信息并加载至所述至少一个数据缓存。
本实施例中,供方服务器在其所提供的数据中与查询请求进行匹配,以得到第二查询结果。数据路由模块103根据第二查询结果向数据缓存101中加载信息。换言之,数据路由模块103可以将供方服务器查询到的数据加载至所述至少一个数据缓存101,也可以生成标识信息并将所述标识信息加载至所述至少一个数据缓存101。进一步地,如果查询模块102根据查询请求在数据缓存101中匹配到了该标识信息,则查询模块102可以反馈提示信息至需求方,以提示未查询到与所述查询请求相匹配的数据。
优选地,图1所示的数据供应系统10还可以包括至少一个消息队列模块(图未示),消息队列模块适于在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,接收所述至少一个数据查询模块102推送的所述查询请求,并进行存储,所述数据路由模块103从所述消息队列模块获取所述查询请求。
本实施例中,消息队列模块从数据查询模块102接收查询请求,数据路由模块103从所述消息队列模块获取所述查询请求,通过消息队列模块将数据查询模块102和数据路由模块103的服务进行分离,以使得前端服务和后端服务互相不影响,提高系统稳定性和响应速度。进一步,由于需求方的查询请求的每秒查询率(Query Per Second,QPS)通常比较高,且需求方的查询请求呈波浪形,时而很高,时而平稳,时而较低,因此消息队列模块采用消息队列的方式,可以在满足需方高QPS情况下,保证需方服务器稳定的同时,在需方QPS低的时候,使得数据路由模块103可以消耗之前积攒下来的查询请求,提高系统的服务能力。
具体而言,数据查询模块102可以直接将查询请求推送至消息队列模块;还可以将查询请求进行转换,再推送至消息队列模块。也就是说,由于需求方发送的查询请求是订单(order)信息,而供应方和需求方需要的参数可能会不一样,因此数据查询模块102可以将查询请求转换为供应方所需的参数或格式等。
进一步地,所述至少一个数据查询模块102按照所述查询请求的请求时间将所述查询请求推送至所述至少一个消息队列模块,以形成消息队列;所述数据路由模块103依次消费所述消息队列中的所述查询请求。
具体而言,数据查询模块102按照查询请求的请求时间将其顺序推送形成消息队列。数据路由模块103按照消息队列的顺序依次消费消息队列信息,多个数据路由模块103可以同时作为消费者进行消费。进一步而言,消息队列可以有多条管道,例如,对于kafka消息队列,可以有多个划分(Partition)。
进一步地,所述消息队列模块采用非易失性存储器存储所述查询请求。优选地,所述非易失性存储器可以是磁盘。
本发明实施例通过将消息队列持久化到非易失性存储器,可以在数据供应系统出现故障进行重新恢复。此外,消息队列还可以继续将持久化的消息进行消费请求,不影响系统服务的继续进行。
进一步地,所述至少一个数据缓存和所述至少一个消息队列模块采用集群的方式进行部署。本发明实施例通过集群方式,可以在系统出现瓶颈后,可通过增加数据查询模块、数据缓存、数据路由模块等方式进行横向扩展,增加整个系统的负载能力;此外,可以通过增加节点对数据缓存进行横向扩展,提高系统存储能力;通过消息队列模块的集群方式可以提升系统处理能力和系统可靠性。
优选地,图1所示的数据供应系统10还可以包括反向代理和负载均衡模块(图未示),反向代理和负载均衡模块适于接收所述查询请求,并将多个查询请求均匀分发至所述至少一个数据查询模块。
本实施例中,由于需求方会发送多个查询请求,因此为了避免多个查询请求集中在同一个数据查询模块102,通过反向代理和负载均衡模块将多个查询请求均匀分发至多个数据查询模块102,从而保证数据供应系统的服务性能。
优选地,每一数据缓存包括主节点(master)和从节点(slave),所述从节点中存储的数据为所述主节点中存储的数据的备份;所述主节点允许读操作或写操作,所述从节点与所述主节点互为代替单元。
本实施例中,通过主从节点设计可以把读操作和写操作分离,提高缓存查询效率;此外,通过主从节点的配置,使得缓存具有很强的容灾性。具体地,主从节点可以通过数据缓存101配置文件进行配置,例如通过缓存集群配置文件进行配置。可以配置主节点只允许写操作,从节点只允许读操作。在数据缓存中进行数据查询时,可以将读请求转到从节点,写请求转到主节点;同时,主节点和从节点可以具有同步功能,从而实现了(数据层)读写分离对上层(逻辑层)透明的正常逻辑,实现简单,无需再通过中间件或者代码进行读写分离。
本发明实施例还公开了又一种数据供应系统,所述数据供应系统可以包括至少一个数据查询模块、至少一个数据路由模块和至少一个消息队列模块。
本发明实施例的数据查询模块可以及时反馈针对查询请求的第一查询结果,提高了数据供应系统的响应速度;此外,数据路由模块根据查询请求调用供方服务器与查询模块的查询操作是各自独立进行的,避免了需求方等待数据路由模块的加载过程,从而进一步提高了数据供应系统的响应速度,保证了高效的查询速度的同时又可支持高并发,大大增强了大数据量下系统处理能力和并发能力,提高了系统性能。
此外,通过消息队列模块将数据查询模块和数据路由模块进行分离,实现了前端服务和后端服务的分离,从而进一步提高了数据供应系统的响应速度。
本发明实施例的更多具体实施方式可参照对图1所示实施例的描述,此处不再赘述。
图2是本发明实施例另一种数据供应系统的结构示意图。
本实施例中,数据缓存集群201可以采用基于内存的非关系型数据库,通过集群方式实现数据分布式存储和读写分离,不仅可以提高查询效率,还可以具有很高的可用性以及可扩展性。数据缓存集群201的节点的数量能够根据业务量级的大小动态伸缩,具有很强的横向扩展能力。
反向代理和负载均衡模块204处于整个数据供应系统20的前端,面向用户(也即需求方30)提供数据查询入口。通过反向代理和负载均衡功能,将需求方30的查询请求分发到各个数据查询模块202。具体而言,反向代理和负载均衡模块204可以使用反向代理服务器Nginx(engine x)做查询请求的分发。
数据查询模块202处理从反向代理和负载均衡模块204接收到的查询请求,根据查询请求中的参数从数据缓存集群201中查询数据。如果缓存命中,则从缓存取出数据回应给需求方30;如果缓存未命中,则也将该查询结果通知需求方30;同时,还将查询请求推送到消息队列集群205。数据查询模块202的实时查询服务可以支持高并发和高性能的处理,单台服务能提供高性能的处理能力,并可以通过集群方式提升服务能力。
消息队列集群205可以采用高吞吐量的分布式发布订阅消息队列组件。消息队列集群205存储数据查询模块202推送的供方数据的查询请求,形成消息队列,并提供给数据路由模块203处理消息。消息队列支持持久化和高吞吐量,以保证系统整体的性能。
数据路由模块203从消息队列获取供方数据的查询请求,并根据数据路由规则请求查询请求对应的数据供应方40,获取数据供应方40提供的数据并加载到数据缓存集群201中,形成数据查询服务的闭环处理。
更具体地,数据路由规则可以包括:单一路由、静态路由、动态路由和广播路由。单一路由指的是在需求方30订单下单成功后,涉及到该订单的供应方40需求方30是一对一的关系,该订单去一个供应方40去取数据。静态路由指的是,一个需求方30的订单配置了多个供应方40,根据顺序轮询请求供应方40获取数据。动态路由指的是订单路由配置文件里优先级情况,例如,是价格(例如价格最低)优先,还是响应时间(例如响应时间最低)优先等配置动态选择供方。广播路由是需求方30同时向多个供应方40发送请求,根据返回结果来选择数据。本领域技术人员可以理解的是,数据路由规则可以根据实际的应用环境进行配置,本发明实施例对此不做限制。
关于所述数据供应系统20的工作原理、工作方式的更多内容,可以参照对图1所示实施例的相关描述,这里不再赘述。
图3是本发明实施例一种数据供应方法的流程图。
图3所示的数据供应方法可以包括以下步骤:
步骤S301:接收需求方的查询请求;
步骤S302:根据所述查询请求在至少一个数据缓存中对多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方,所述至少一个数据缓存中存储所述多种数据;
步骤S303:在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,根据所述查询请求调用对应的供方服务器,并根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存。
本发明技术方案的可以及时反馈针对查询请求的第一查询结果,提高了数据供应系统的响应速度;此外,根据查询请求调用供方服务器与查询操作是各自独立进行的,避免了需求方等待数据加载过程,从而进一步提高了数据供应系统的响应速度,保证了高效的查询速度的同时又可支持高并发,大大增强了大数据量下系统处理能力和并发能力,提高了系统性能。
优选地,图3所示的步骤S302可以包括以下步骤:如果所述数据查询模块在所述至少一个数据缓存中查询到与所述查询请求相匹配的数据,则将查询到的数据作为所述第一查询结果反馈至所述需求方;如果所述数据查询模块未查询到与所述查询请求相匹配的数据,则生成提示信息作为所述第一查询结果反馈至所述需求方,所述提示信息用以提示未查询到与所述查询请求相匹配的数据。
优选地,图3所示的步骤S303可以包括以下步骤:如果所述第二查询结果表明所述供方服务器查询到与所述查询请求相匹配的数据,则所述数据路由模块将查询到的数据加载至所述至少一个数据缓存;如果所述第二查询结果表明所述供方服务器未查询到与所述查询请求相匹配的数据,则所述数据路由模块生成标识信息并加载至所述至少一个数据缓存。
优选地,图3所示的数据供应方法还可以包括以下步骤:在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,接收所述至少一个数据查询模块推送的所述查询请求,并进行存储。
进一步地,所述接收所述至少一个数据查询模块推送的所述查询请求包括:按照所述查询请求的请求时间接收所述查询请求推,以形成消息队列。
进一步地,采用非易失性存储器存储所述查询请求。例如,可以采用磁盘存储所述查询请求,以形成消息队列。
优选地,步骤S301可以包括以下步骤:接收均匀分发的多个查询请求。
优选地,每一数据缓存包括主节点和从节点,所述从节点中存储的数据为所述主节点中存储的数据的备份;所述主节点允许读操作或写操作,所述从节点与所述主节点互为代替单元。
关于所述数据供应方法的更多内容,可以参照对图1或图2所示实施例的相关描述,这里不再赘述。
本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时可以执行图3中所示的数据供应方法的步骤。所述存储介质可以包括ROM、RAM、磁盘或光盘等。
本发明实施例还公开了一种终端,所述终端可以包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令。所述处理器运行所述计算机指令时可以执行图3中所示的数据供应方法的步骤。所述终端包括但不限于计算机、平板电脑等终端设备。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (18)

1.一种数据供应系统,其特征在于,包括:
至少一个数据缓存,适于存储多种数据;
至少一个数据查询模块,适于接收需求方的查询请求,并根据所述查询请求在所述至少一个数据缓存中对所述多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方;
至少一个数据路由模块,适于在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,根据所述查询请求调用对应的供方服务器,并根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存。
2.根据权利要求1所述的数据供应系统,其特征在于,如果所述数据查询模块在所述至少一个数据缓存中查询到与所述查询请求相匹配的数据,则将查询到的数据作为所述第一查询结果反馈至所述需求方;如果所述数据查询模块未查询到与所述查询请求相匹配的数据,则生成提示信息作为所述第一查询结果反馈至所述需求方,所述提示信息用以提示未查询到与所述查询请求相匹配的数据;
如果所述第二查询结果表明所述供方服务器查询到与所述查询请求相匹配的数据,则所述数据路由模块将查询到的数据加载至所述至少一个数据缓存;如果所述第二查询结果表明所述供方服务器未查询到与所述查询请求相匹配的数据,则所述数据路由模块生成标识信息并加载至所述至少一个数据缓存。
3.根据权利要求1所述的数据供应系统,其特征在于,还包括:
至少一个消息队列模块,适于在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,接收所述至少一个数据查询模块推送的所述查询请求,并进行存储,所述数据路由模块从所述消息队列模块获取所述查询请求;
所述至少一个数据查询模块按照所述查询请求的请求时间将所述查询请求推送至所述至少一个消息队列模块,以形成消息队列;所述数据路由模块依次消费所述消息队列中的所述查询请求。
4.根据权利要求3所述的数据供应系统,其特征在于,所述消息队列模块采用非易失性存储器存储所述查询请求。
5.根据权利要求3所述的数据供应系统,其特征在于,所述至少一个数据缓存和所述至少一个消息队列模块采用集群的方式进行部署。
6.根据权利要求1所述的数据供应系统,其特征在于,还包括:
反向代理和负载均衡模块,适于接收所述查询请求,并将多个查询请求均匀分发至所述至少一个数据查询模块。
7.根据权利要求1所述的数据供应系统,其特征在于,每一数据缓存包括主节点和从节点,所述从节点中存储的数据为所述主节点中存储的数据的备份;所述主节点允许读操作或写操作,所述从节点与所述主节点互为代替单元。
8.一种数据供应系统,其特征在于,包括:
至少一个数据查询模块,适于接收需求方的查询请求,并根据所述查询请求在至少一个数据缓存中对多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方;
至少一个数据路由模块,适于在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,根据所述查询请求调用对应的供方服务器,并根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存;
至少一个消息队列模块,适于在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,接收所述至少一个数据查询模块推送的所述查询请求,并进行存储,所述数据路由模块从所述消息队列模块获取所述查询请求。
9.根据权利要求8所述的数据供应系统,其特征在于,还包括:
至少一个数据缓存,适于存储所述多种数据。
10.根据权利要求9所述的数据供应系统,其特征在于,所述至少一个数据缓存和所述至少一个消息队列模块采用集群的方式进行部署。
11.根据权利要求8所述的数据供应系统,其特征在于,所述消息队列模块采用非易失性存储器存储所述查询请求。
12.一种数据供应方法,其特征在于,包括:
接收需求方的查询请求;
根据所述查询请求在至少一个数据缓存中对多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方,所述至少一个数据缓存中存储所述多种数据;
在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,根据所述查询请求调用对应的供方服务器,并根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存。
13.根据权利要求12所述的数据供应方法,其特征在于,所述根据所述查询请求在至少一个数据缓存中对多种数据进行匹配查询,以得到第一查询结果,并反馈至所述需求方包括:
如果在所述至少一个数据缓存中查询到与所述查询请求相匹配的数据,则将查询到的数据作为所述第一查询结果反馈至所述需求方;
如果未查询到与所述查询请求相匹配的数据,则生成提示信息作为所述第一查询结果反馈至所述需求方,所述提示信息用以提示未查询到与所述查询请求相匹配的数据;
所述根据所述供方服务器反馈的第二查询结果将对应的数据信息加载至所述至少一个数据缓存包括:
如果所述第二查询结果表明所述供方服务器查询到与所述查询请求相匹配的数据,则将查询到的数据加载至所述至少一个数据缓存;
如果所述第二查询结果表明所述供方服务器未查询到与所述查询请求相匹配的数据,则生成标识信息并加载至所述至少一个数据缓存。
14.根据权利要求12所述的数据供应方法,其特征在于,还包括:
在所述第一查询结果表明未查询到与所述查询请求相匹配的数据时,接收所述至少一个数据查询模块推送的所述查询请求,并进行存储;
所述接收所述至少一个数据查询模块推送的所述查询请求包括:
按照所述查询请求的请求时间接收所述查询请求推,以形成消息队列。
15.根据权利要求14所述的数据供应方法,其特征在于,采用非易失性存储器存储所述查询请求。
16.根据权利要求12所述的数据供应方法,其特征在于,所述接收需求方的查询请求包括:
接收均匀分发的多个查询请求。
17.根据权利要求12所述的数据供应方法,其特征在于,每一数据缓存包括主节点和从节点,所述从节点中存储的数据为所述主节点中存储的数据的备份;所述主节点允许读操作或写操作,所述从节点与所述主节点互为代替单元。
18.一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行权利要求12至17中任一项所述数据供应方法的步骤。
CN201710670122.5A 2017-08-08 2017-08-08 数据供应系统及方法、终端 Active CN107562803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710670122.5A CN107562803B (zh) 2017-08-08 2017-08-08 数据供应系统及方法、终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710670122.5A CN107562803B (zh) 2017-08-08 2017-08-08 数据供应系统及方法、终端

Publications (2)

Publication Number Publication Date
CN107562803A true CN107562803A (zh) 2018-01-09
CN107562803B CN107562803B (zh) 2020-10-30

Family

ID=60974345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710670122.5A Active CN107562803B (zh) 2017-08-08 2017-08-08 数据供应系统及方法、终端

Country Status (1)

Country Link
CN (1) CN107562803B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920581A (zh) * 2018-06-25 2018-11-30 上海数据交易中心有限公司 数据流通方法及装置、存储介质、服务器
CN109145011A (zh) * 2018-11-01 2019-01-04 上海数据交易中心有限公司 数据检索方法及装置、终端
CN109446448A (zh) * 2018-09-10 2019-03-08 平安科技(深圳)有限公司 数据处理方法和系统
CN111555963A (zh) * 2020-04-30 2020-08-18 北京思特奇信息技术股份有限公司 消息推送方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685179A (zh) * 2011-03-18 2012-09-19 丛林网络公司 模块化透明代理缓存
CN104424199A (zh) * 2013-08-21 2015-03-18 阿里巴巴集团控股有限公司 搜索方法和装置
US9026498B2 (en) * 2012-08-13 2015-05-05 Commvault Systems, Inc. Lightweight mounting of a secondary copy of file system data
US20150127599A1 (en) * 2013-11-07 2015-05-07 Dirk Schiebeler Stateless database cache
CN106357539A (zh) * 2015-07-17 2017-01-25 阿里巴巴集团控股有限公司 一种数据获取方法和设备
CN106777085A (zh) * 2016-12-13 2017-05-31 东软集团股份有限公司 一种数据处理方法、装置及数据查询系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685179A (zh) * 2011-03-18 2012-09-19 丛林网络公司 模块化透明代理缓存
US9026498B2 (en) * 2012-08-13 2015-05-05 Commvault Systems, Inc. Lightweight mounting of a secondary copy of file system data
CN104424199A (zh) * 2013-08-21 2015-03-18 阿里巴巴集团控股有限公司 搜索方法和装置
US20150127599A1 (en) * 2013-11-07 2015-05-07 Dirk Schiebeler Stateless database cache
CN106357539A (zh) * 2015-07-17 2017-01-25 阿里巴巴集团控股有限公司 一种数据获取方法和设备
CN106777085A (zh) * 2016-12-13 2017-05-31 东软集团股份有限公司 一种数据处理方法、装置及数据查询系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
涂振发: "云计算环境下海量空间数据高效存储关键技术研究", 《中国博士学位论文全文数据库 基础科学辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920581A (zh) * 2018-06-25 2018-11-30 上海数据交易中心有限公司 数据流通方法及装置、存储介质、服务器
CN109446448A (zh) * 2018-09-10 2019-03-08 平安科技(深圳)有限公司 数据处理方法和系统
CN109145011A (zh) * 2018-11-01 2019-01-04 上海数据交易中心有限公司 数据检索方法及装置、终端
CN109145011B (zh) * 2018-11-01 2023-07-18 上海数据交易中心有限公司 数据检索方法及装置、终端
CN111555963A (zh) * 2020-04-30 2020-08-18 北京思特奇信息技术股份有限公司 消息推送方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN107562803B (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN102546782B (zh) 一种分布式系统及其数据操作方法
CN107562803A (zh) 数据供应系统及方法、终端
WO2019056640A1 (zh) 订单处理方法及装置
CN105516284B (zh) 一种集群数据库分布式存储的方法和装置
CN102932472A (zh) 一种数据处理方法以及通信系统
US20130085895A1 (en) High throughput global order promising system
CN105025053A (zh) 基于云存储技术的分布式文件的上传方法及其系统
CN104462370A (zh) 分布式任务调度系统及方法
CN102387220A (zh) 一种基于云存储的离线下载的方法及其系统
CN104050250A (zh) 一种分布式键-值查询方法和查询引擎系统
CN102591970A (zh) 一种分布式键-值查询方法和查询引擎系统
CN102982116A (zh) 基于云的多媒体转换方法及系统
CN104820717A (zh) 一种海量小文件存储及管理方法和系统
CN103312624A (zh) 一种消息队列服务系统和方法
CN102333029A (zh) 一种服务器集群系统中的路由方法
CN107613025A (zh) 一种基于消息队列顺序回复的实现方法和装置
CN106777311A (zh) 航班舱位状态缓存方法和系统
CN105096122A (zh) 一种分片式交易匹配方法和装置
CN103107944B (zh) 一种内容定位方法和路由设备
CN108153825A (zh) 数据访问方法及装置
CN107644017A (zh) 日志文件的查询方法及装置
CN103326925A (zh) 一种消息推送方法及装置
CN104715044B (zh) 一种分布式系统及其数据操作方法
CN102929958A (zh) 元数据的处理方法,代理、转发设备,服务器及计算系统
CN102291629A (zh) 一种应用于iptv的p2p代理点播系统及实现方法

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