CN110674172A - 数据查询方法及装置 - Google Patents
数据查询方法及装置 Download PDFInfo
- Publication number
- CN110674172A CN110674172A CN201910892868.XA CN201910892868A CN110674172A CN 110674172 A CN110674172 A CN 110674172A CN 201910892868 A CN201910892868 A CN 201910892868A CN 110674172 A CN110674172 A CN 110674172A
- Authority
- CN
- China
- Prior art keywords
- task
- storage medium
- target data
- data
- server
- 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.)
- Withdrawn
Links
Images
Classifications
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据查询方法及装置。该方法中,用户通过客户端向服务器发起目标数据查询请求,客户端会根据该查询请求生成与服务器建立通信链路的连接请求,并向服务器发送该连接请求;服务器响应该连接请求后,建立与客户端之间的链路连接,并通知客户端,建立通信链路;随后客户端将目标数据查询请求通过该通信链路发送给服务器;服务器从第一存储介质中提取出目标数据,并封装成消息发送给客户端;客户端从该消息中获取目标数据,并断开与服务器之间的通信链路。该方法中,目标数据存储于第一存储介质中,该第一存储介质只处理查询请求对应的请求结果,从而避免了因其他请求类型过多,而导致无法及时对查询请求做出响应的问题。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据查询方法及装置。
背景技术
目前,存在一种数据查询方法,用户通过客户端的管理界面,向服务器发起查询数据的查询请求,客户端会生成与该查询请求对应的查询进程,通过该查询进程获取存储于物理存储设备中的数据。例如:用户通过管理界面,创建查询进程来查询服务器中的卷基本信息。
上述方法中,用户每发起一次查询操作,相应的就会创建一个查询操作进程。对于存储设备来说,除了用户所发起的查询操作进程之外,还存在其他操作进程,例如写操作进程等,当存储设备接收到的不同类型的进程过多时,会导致存储设备无法对查询操作进程及时做出响应。
发明内容
有鉴于此,本申请实施例提供了一种数据查询方法,以解决因查询操作进程与其他操作进程冲突而导致存储设备无法及时响应的问题。另外,本申请还提供了一种数据查询装置,以实现上述方法在实际中的应用与实现。
为实现上述目的,本申请实施例提供如下技术方案:
第一方面,本申请提供了一种数据查询方法,应用于客户端,所述方法包括:
获取目标数据查询请求;
生成与所述目标数据请求查询对应的连接任务,将连接任务存储至连接队列中,由部署于所述客户端的线程池执行所述连接任务,以向服务器发送连接请求;
接收由服务器发送的确认连接消息,与所述服务器建立通信链路;
生成与所述确认连接消息对应的发送任务,将所述发送任务存储至发送队列中,由部署于所述客户端的线程池执行所述发送任务,以将所述目标数据查询请求发送至服务器;
接收由服务器发送的目标数据消息,所述目标数据消息由服务器根据所述目标数据查询请求从第一存储介质中获取目标数据,并对所述目标数据封装得到,所述第一存储介质仅用于执行所述目标数据查询请求;
从所述目标数据消息中获取目标数据;
生成断开任务,将断开任务存储至断开队列中,由部署于所述客户端的线程池执行所述断开任务,以断开与服务器之间的通信链路。
第二方面,本申请提供了一种数据查询方法,应用于服务器,所述方法包括:
接收客户端发送的连接请求;
根据所述连接请求,建立与所述客户端之间的通信链路,并生成确认连接消息,将所述确认连接消息发送给所述客户端;
接收客户端发送的目标数据查询请求;
根据所述目标数据查询请求,生成查询任务,由部署于服务器的线程池执行所述查询任务,以从第一存储介质预先缓存的数据中获取与所述目标数据查询请求对应的目标数据,所述第一存储介质仅用于执行所述目标数据查询请求;
将所述目标数据封装成目标数据消息发送给所述客户端。
第三方面,本申请提供了一种数据查询装置,应用于客户端,所述装置包括:
请求获取模块,用于获取目标数据查询请求;
第一连接模块,用于生成与所述目标数据查询请求对应的连接任务,将连接任务存储至连接队列中,由部署于所述客户端的线程池执行所述连接任务,以向服务器发送连接请求;
链路确认模块,用于接收由服务器发送的确认连接消息,与所述服务器建立通信链路;
请求发送模块,用于生成与所述确认连接消息对应的发送任务,将所述发送任务存储至发送队列中,由部署于所述客户端的线程池执行所述发送任务,以将所述目标数据查询请求发送至服务器;
数据接收模块,用于接收由服务器发送的目标数据消息,所述目标数据消息由服务器根据所述目标数据查询请求从第一存储介质中获取目标数据,并对所述目标数据封装得到,所述第一存储介质仅用于执行所述目标数据查询请求;
数据获取模块,用于从所述目标数据消息中获取目标数据;
链路断开模块,用于生成断开任务,将断开任务存储至断开队列中,由部署于所述客户端的线程池执行所述断开任务,以断开与服务器之间的通信链路。
第四方面,本申请提供了一种数据查询装置,应用于服务器,所述装置包括:
连接请求接收模块,用于接收客户端发送的连接请求;
链路建立模块,用于根据所述连接请求,建立与所述客户端之间的通信链路,并生成确认连接消息,将所述确认连接消息发送给所述客户端;
查询请求接收模块,用于接收客户端发送的目标数据查询请求;
数据提取模块,用于根据所述目标数据查询请求,生成查询任务,由部署于服务器的线程池执行所述查询任务,以从第一存储介质预先缓存的数据中获取与所述目标数据查询请求对应的目标数据,所述第一存储介质仅用于执行所述目标数据查询请求;
数据封装模块,用于将所述目标数据封装成目标数据消息发送给所述客户端。
由上述技术方案可知,本申请实施例提供了一种数据查询方法,该方法中,用户通过客户端向服务器发起目标数据查询请求,客户端会根据该查询请求生成与服务器建立通信链路的连接请求,并向服务器发送该连接请求,服务器响应该连接请求后,建立与客户端之间的链路连接,并通知客户端,确认通信链路的建立;随后客户端将用户的目标数据查询请求通过该通信链路发送给服务器,服务器从第一存储介质中提取出与目标数据查询请求对应的目标数据,并封装成消息发送给客户端,客户端接收到该消息后,从该消息中获取目标数据,并断开与服务器之间的连接。该方法中,目标数据存储于第一存储介质中,该第一存储介质只提供查询请求对应的请求结果,从而避免了因其他请求类型过多,而导致无法及时对查询请求做出响应的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请提供的数据查询方法的流程图;
图2示出了本申请提供的数据查询装置的结构图;
图3示出了本申请提供的另一种数据查询装置的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在现有技术中,存在一种数据查询方法,用户通过该方法在客户端发起查询请求,客户端根据该查询请求,创建查询操作进程,且由服务器的存储设备对该查询操作进程做出响应。
但是,该存储设备除了响应查询操作进程之外,还响应其他操作进程,如写操作进程以及其他操作进程。当该存储设备处理的进程数量较多时,则无法及时响应用户所发起的查询操作进程。
为此,本申请实施例提供了一种数据查询方法。参见图1,该方法包括:S101-S112。其中:
S101:客户端获取目标数据查询请求。
需要说明的是,目标数据查询请求包括:卷基本信息查询请求、快照信息查询请求、卷性能统计查询请求、厚置被卷属性查询请求等等。上述数据属于存储设备的属性参数,用户可通过存储设备的属性参数合理调用存储资源,如根据存储设备的属性参数合理分配配置虚拟机的存储空间。具体地,客户端中设置与用户交互的管理界面,用户通过登录该管理界面,在该管理界面中发起上述数据中的任意一项目标数据的查询请求。
需要说明的是,客户端在获取用户经管理界面发起的目标数据查询请求之后,创建与该请求对应的查询操作进程,其中:查询操作进程利用部署于客户端的发送线程以及线程池完成目标数据的查询操作。其中,发送线程中包含三个队列:连接队列、发送队列以及断开队列,每个队列用于存放对应的任务,例如:连接队列用于存放连接任务,发送队列用于存放发送任务,断开队列用于存放断开任务。而上述任务均由部署于客户端的线程池来执行,且对于同一个查询操作进程,三个任务之间有执行先后的关系,首先基于该查询操作进程会先创建连接任务,待连接任务完成之后,进而创建发送任务,待发送任务完成之后,再创建断开任务。
S102:客户端生成与目标数据查询请求对应的连接任务,将连接任务存储至连接队列中,由部署于客户端的线程池执行连接任务,以向服务器发送连接请求。
具体地,当查询操作进程创建结束后,生成目标数据查询请求对应的连接任务,用于客户端的发送线程与服务器的接收主线程建立连接。其中,连接任务是由部署于客户端的线程池来执行的,其执行过程为:生成连接请求,将该连接请求通过发送线程发送至服务器。S103:服务器接收客户端发送的连接请求。
需要说明的是,服务器部署了接收主线程和线程池,由接收主线程中的监听功能对发送线程进行监听。当客户端通过发送线程将连接请求发送给服务器时,部署于服务器侧的接收主线程监听到该请求之后,通过特定的方式与客户端连接,如通过iSCSI方式与客户端连接。
S104:服务器根据连接请求,建立与客户端之间的通信链路,并生成确认连接消息,将确认连接消息发送给客户端。
需要说明的是,确认连接消息用于指示客户端与服务器的通信链路连接,具体地,用于指示客户端发送线程与服务器接收主线程之间的连接。其中,接收主线程包括:任务队列以及消息队列,其中任务队列用于执行发送线程中的目标数据查询请求,消息队列用于监听发送线程中的消息。
具体地,服务器的接收主线程监听客户端的发送线程消息,当监听到发送线程中的连接请求时,将对该连接请求作出响应,即建立与客户端之间的通信链路,并生成确认连接消息,将确认连接消息发送经接收主线程发送给客户端的发送线程。
S105:客户端接收由服务器发送的确认连接消息,与服务器建立通信链路。
具体地,客户端发送线程接收到确认连接消息后,根据该确认连接消息,建立与服务器之间的通信链路连接,即实现客户端发送线程与服务器接收主线程之间的连接,用户可以通过客户端发起访问服务器lib库请求,实现对服务器的存储介质进行操作。需要说明的是,发送线程与接收主线程的通信方式可以是tgt消息通信。在linux平台上,可以通过该tgt消息通信架构完成发送线程与接收主线程的连接、数据的处理以及数据的传输等。而该方式的优点是能够实现异步读写、避免了读操作进行与写操作进程的冲突,提升了数据处理的效率。
S106:客户端生成与确认连接消息对应的发送任务,将发送任务存储至发送队列中,由部署于客户端的线程池执行发送任务,以将目标数据查询请求发送至服务器。
具体地,客户端中的发送线程与服务器的接收主线程建立连接之后,即表示连接任务执行完成,进而生成目标数据查询请求的发送任务,并将该发送任务存储于发送队列中,由部署于客户端的线程池执行该发送任务,其执行过程是将目标数据查询请求通过发送线程发送给服务器的接收主线程。
S107:服务器接收客户端发送的目标数据查询请求。
S108:服务器根据目标数据查询请求,生成查询任务,由部署于服务器的线程池执行查询任务,以从第一存储介质预先缓存的数据中获取与目标数据查询请求对应的目标数据,第一存储介质仅用于执行目标数据查询请求。
需要说明的是,服务器存在第一存储介质和第二存储介质,其中,第一存储介质是预设的存储空间,可以是除了第二存储介质之外的任意存储介质,如服务器的内存;而第二存储介质指的是服务器中的物理存储空间,如硬盘、块存储或其他物理存储空间。其中,第一存储介质的预先缓存的数据是从第二存储介质中获取的,由第一存储介质为客户端提供目标数据的查询结果。
具体地,服务器接收客户端发送的目标数据查询请求之后,根据该请求生成查询任务,并将该查询任务放置在接收主线程的任务队列中,由部署于服务器的线程池执行该查询任务,即从第一存储介质预先缓存的数据中获取与目标数据查询请求对应的目标数据。例如:目标数据查询请求为卷基本信息查询请求,服务器根据该查询请求生成卷基本信息的查询任务,在第一存储介质中查询卷基本信息这一数据项,即目标数据,并将该数据项作为查询任务的执行结果。
S109:服务器将目标数据封装成目标数据消息发送给客户端。
具体地,服务器执行完查询任务之后,将执行结果,即目标数据发送给客户端,其发送的具体实现方式可以是将目标数据封装成消息的格式,生成目标数据消息,并将该目标数据消息通过接收主线程发送给客户端的发送线程。
需要说明的是,上述对目标数据的封装过程可以是多种实现方式,此处不再具体说明。
S110:客户端接收由服务器发送的目标数据消息,目标数据消息由服务器根据目标数据查询请求从第一存储介质中获取目标数据,并对目标数据封装得到,第一存储介质仅用于执行目标数据查询请求。
S111:客户端从目标数据消息中获取目标数据。
需要说明的是,发送线程与接收主线程之间会有对应的消息格式,例如:发送线程在发送数据时,先将该数据封装成发送消息的格式,进而再将该消息发送给接收主线程,而接收主线程则根据接收消息的格式对消息进行解析,从而获取数据,该通信过程是相互的,也就是说,若接收主线程为发送端,发送线程为接收端,也是根据上述过程实现的。
其中,对消息的解析过程可以是任意一种实现方式,此处不再具体说明。
具体地,客户端的发送线程接收到目标数据消息之后,根据预先设置的解析模块对该目标数据消息进行解析,以获得目标数据。
S112:客户端生成断开任务,将断开任务存储至断开队列中,由部署于客户端的线程池执行断开任务,以断开与服务器之间的通信链路。
需要说明的是,断开任务的生成是为了节省服务器中CPU的资源利用率,因此,在完成目标数据的查询之后,需要生成断开任务,以断开与客户端与服务器之间的通信链路连接,结束查询操作进程。
具体地,客户端从目标数据消息中解析出目标数据之后,生成断开任务,并将该断开任务保存在断开队列中,由部署于客户端的线程池执行该断开任务,以断开与服务器之间的通信链路连接。
由上述技术方案可知,本申请实施例提供了一种数据查询方法,该方法中,用户通过客户端向服务器发起目标数据查询请求,客户端会根据该查询请求生成与服务器建立通信链路的连接请求,并向服务器发送该连接请求,服务器响应该连接请求后,建立与客户端之间的链路连接,并通知客户端,确认通信链路的建立;随后客户端将用户的目标数据查询请求通过该通信链路发送给服务器,服务器从第一存储介质中提取出与目标数据查询请求对应的目标数据,并封装成消息发送给客户端,客户端接收到该消息后,从该消息中获取目标数据,并断开与服务器之间的连接。该方法中,目标数据存储于第一存储介质中,该第一存储介质只提供查询请求对应的请求结果,从而避免了因其他请求类型过多,而导致无法及时对查询请求做出响应的问题。
在一个示例中,第一存储介质预先缓存数据的过程,包括如下步骤:
服务器创建从第二存储介质中获取数据的缓存任务,第二存储介质执行的请求类型大于第一存储介质执行的请求类型,且第二存储介质的读取速度小于第一存储介质的读取速度;由部署于服务器的线程池执行缓存任务,从第二存储介质中获取与缓存任务对应的数据,将与缓存任务对应的数据存储至第一存储介质中。
需要说明的是,第二存储介质是卷基本信息、快照信息、卷性能统计、厚置被卷属性等数据的源存储介质。上述数据属于第二存储介质的属性参数,用户可通过该第二存储介质的属性参数合理调用第二存储介质中存储资源,例如:根据第二存储介质的属性参数合理分配配置虚拟机的存储空间。
需要说明的是,第二存储介质可以处理多个请求类型,如查询请求、写请求以及其他请求类型;第一存储介质只用于处理查询请求,为保证第一存储介质的处理请求速度,可以将服务器的内存设置为第一存储介质,以提高请求处理的速度。
具体地,为了保证服务器能够及时响应客户端的数据查询请求,本申请提供了第一存储介质,用于缓存上述的数据,其具体为:服务器创建查询缓存任务,将该任务存储于任务队列中,由部署于服务器的线程池执行该任务,即将上述数据从第二存储介质缓存到第一存储介质中,由第一存储介质为所有的目标数据查询请求提供数据服务。
在一个示例中,数据查询方法,还可以包括如下步骤:
如果当前时间为检测时间,服务器将创建检测任务,由部署于服务器的线程池执行检测任务,对第一存储介质和第二存储介质中存储的数据的一致性进行检测;若数据的一致性的检测结果表示第二存储介质中的数据相对于第一存储介质中的数据发生变动,创建数据更新任务;由部署于服务器的线程池执行数据更新任务,以从第二存储介质中获取增量数据,将增量数据存储至第一存储介质中。
需要说明的是,检测任务用于对第二存储介质中的数据进行检测,更新任务用于对第一存储介质中的数据进行更新,且检测任务以及更新任务均存储于任务队列中。
具体地,为实现第一存储介质中的数据与第二存储介质中的数据同步,服务器会定时检测第二存储介质中的数据,其检测过程是由部署于服务器的线程池执行检测任务,即对比第一存储介质与第二存储介质数据的一致性,若第一存储介质和第二存储介质中存储的数据的一致性表示为第二存储介质中的存储数据发送变动(添加、删除以及修改等)时,服务器将建立更新任务,在第一存储介质中执行与第二存储介质中数据变动一致的操作,例如:第二存储介质中的某个数据被用户删除了,此时,更新任务会将第一存储介质中与该数据对应的数据删除,以实现第一存储介质中的数据与第二存储介质中的数据同步。
本申请实施例提供了一种数据查询装置,应用于客户端。参见图2,该装置包括:请求获取模块201、第一连接模块202、链路确认模块203、请求发送模块204、数据接收模块205、数据获取模块206以及链路断开模块207。
其中:
请求获取模块201,用于获取目标数据查询请求。
第一连接模块202,用于生成与目标数据查询请求对应的连接任务,将连接任务存储至连接队列中,由部署于客户端的线程池执行连接任务,以向服务器发送连接请求。
链路确认模块203,用于接收由服务器发送的确认连接消息,与服务器建立通信链路。
请求发送模块204,用于生成与确认连接消息对应的发送任务,将发送任务存储至发送队列中,由部署于客户端的线程池执行发送任务,以将目标数据查询请求发送至服务器。
数据接收模块205,用于接收由服务器发送的目标数据消息,目标数据消息由服务器根据目标数据查询请求从第一存储介质中获取目标数据,并对目标数据封装得到,第一存储介质仅用于执行目标数据查询请求。
数据获取模块206,用于从目标数据消息中获取目标数据。
链路断开模块207,用于生成断开任务,将断开任务存储至断开队列中,由部署于客户端的线程池执行断开任务,以断开与服务器之间的通信链路。
由上述技术方案可知,本申请提供了一种数据查询装置,该装置中,用户通过客户端发起目标数据查询请求,客户端会生成连接请求,并向服务器发送该连接请求,服务器响应该连接请求后,建立与客户端之间的链路连接,客户端将用户的目标数据查询请求发送给服务器,服务器从第一存储介质中提取出与目标数据查询请求对应的目标数据,并封装成消息发送给客户端,客户端接收到该消息后,从该消息中获取目标数据,并断开与服务器之间的连接。该装置中用户发起的目标数据查询请求是由服务器的第一存储介质执行的,由第一存储介质为用户提供目标数据,从而避免了因其他请求类型过多,而导致无法对查询请求做出响应的问题。
本申请实施例提供了一种数据查询装置,应用于服务器。参见图3,该装置包括:连接请求接收模块301、链路建立模块302、查询请求接收模块303、数据提取模块304以及数据封装模块305。其中:
连接请求接收模块301,用于接收客户端发送的连接请求。
链路建立模块302,用于根据连接请求,建立与客户端之间的通信链路,并生成确认连接消息,将确认连接消息发送给客户端。
查询请求接收模块303,用于接收客户端发送的目标数据查询请求。
数据提取模块304,用于根据目标数据查询请求,生成查询任务,由部署于服务器的线程池执行查询任务,以从第一存储介质预先缓存的数据中获取与目标数据查询请求对应的目标数据,第一存储介质仅用于执行目标数据查询请求。
数据封装模块305,用于将目标数据封装成目标数据消息发送给客户端。
由上述技术方案可知,本申请实施例提供了一种数据查询装置,该装置中,用户通过客户端向服务器发起目标数据查询请求,客户端会根据该查询请求生成与服务器建立通信链路的连接请求,并向服务器发送该连接请求,服务器响应该连接请求后,建立与客户端之间的链路连接,并通知客户端,确认通信链路的建立;随后客户端将用户的目标数据查询请求通过该通信链路发送给服务器,服务器从第一存储介质中提取出与目标数据查询请求对应的目标数据,并封装成消息发送给客户端,客户端接收到该消息后,从该消息中获取目标数据,并断开与服务器之间的连接。该装置中,目标数据存储于第一存储介质中,而第一存储介质只提供查询请求对应的请求结果,从而避免了因其他请求类型过多,而导致无法及时对查询请求做出响应的问题。
在一个示例中,数据查询装置,还可以包括:
数据缓存模块,用于创建从第二存储介质中获取数据的缓存任务,第二存储介质执行的请求类型大于第一存储介质执行的请求类型,且第二存储介质的读取速度小于第一存储介质的读取速度;由部署于服务器的线程池执行缓存任务,从第二存储介质中获取与缓存任务对应的数据,将与缓存任务对应的数据存储至第一存储介质中。
在一个示例中,数据查询装置,还可以包括:
检测模块,用于如果当前时间为检测时间,创建检测任务,由部署于服务器的线程池执行检测任务,对第一存储介质和第二存储介质中存储的数据的一致性进行检测。
在一个示例中,数据查询装置,还可以包括:
更新模块,用于若数据的一致性的检测结果表示第二存储介质中的数据相对于第一存储介质中的数据发生变动,创建数据更新任务;由部署于服务器的线程池执行数据更新任务,以从第二存储介质中获取增量数据,将增量数据存储至第一存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据查询方法,其特征在于,应用于客户端,所述方法包括:
获取目标数据查询请求;
生成与所述目标数据请求查询对应的连接任务,将连接任务存储至连接队列中,由部署于所述客户端的线程池执行所述连接任务,以向服务器发送连接请求;
接收由服务器发送的确认连接消息,与所述服务器建立通信链路;
生成与所述确认连接消息对应的发送任务,将所述发送任务存储至发送队列中,由部署于所述客户端的线程池执行所述发送任务,以将所述目标数据查询请求发送至服务器;
接收由服务器发送的目标数据消息,所述目标数据消息由服务器根据所述目标数据查询请求从第一存储介质中获取目标数据,并对所述目标数据封装得到,所述第一存储介质仅用于执行所述目标数据查询请求;
从所述目标数据消息中获取目标数据;
生成断开任务,将断开任务存储至断开队列中,由部署于所述客户端的线程池执行所述断开任务,以断开与服务器之间的通信链路。
2.一种数据查询方法,其特征在于,应用于服务器,所述方法包括:
接收客户端发送的连接请求;
根据所述连接请求,建立与所述客户端之间的通信链路,并生成确认连接消息,将所述确认连接消息发送给所述客户端;
接收客户端发送的目标数据查询请求;
根据所述目标数据查询请求,生成查询任务,由部署于服务器的线程池执行所述查询任务,以从第一存储介质预先缓存的数据中获取与所述目标数据查询请求对应的目标数据,所述第一存储介质仅用于执行所述目标数据查询请求;
将所述目标数据封装成目标数据消息发送给所述客户端。
3.根据权利要求2所述的数据查询方法,其特征在于,所述第一存储介质预先缓存数据的过程,包括:
创建从第二存储介质中获取数据的缓存任务,所述第二存储介质执行的请求类型大于所述第一存储介质执行的请求类型,且所述第二存储介质的读取速度小于所述第一存储介质的读取速度;
由部署于服务器的线程池执行所述缓存任务,从所述第二存储介质中获取与缓存任务对应的数据,将所述与缓存任务对应的数据存储至所述第一存储介质中。
4.根据权利要求2所述的数据查询方法,其特征在于,还包括:
如果当前时间为检测时间,创建检测任务,由部署于服务器的线程池执行所述检测任务,对所述第一存储介质和所述第二存储介质中存储的数据的一致性进行检测。
5.根据权利要求4所述的数据查询方法,其特征在于,还包括:
若所述数据的一致性的检测结果表示所述第二存储介质中的数据相对于第一存储介质中的数据发生变动,创建数据更新任务;
由所述部署于服务器的线程池执行所述数据更新任务,以从所述第二存储介质中获取增量数据,将所述增量数据存储至所述第一存储介质中。
6.一种数据查询装置,其特征在于,应用于客户端,所述装置包括:
请求获取模块,用于获取目标数据查询请求;
第一连接模块,用于生成与所述目标数据查询请求对应的连接任务,将连接任务存储至连接队列中,由部署于所述客户端的线程池执行所述连接任务,以向服务器发送连接请求;
链路确认模块,用于接收由服务器发送的确认连接消息,与所述服务器建立通信链路;
请求发送模块,用于生成与所述确认连接消息对应的发送任务,将所述发送任务存储至发送队列中,由部署于所述客户端的线程池执行所述发送任务,以将所述目标数据查询请求发送至服务器;
数据接收模块,用于接收由服务器发送的目标数据消息,所述目标数据消息由服务器根据所述目标数据查询请求从第一存储介质中获取目标数据,并对所述目标数据封装得到,所述第一存储介质仅用于执行所述目标数据查询请求;
数据获取模块,用于从所述目标数据消息中获取目标数据;
链路断开模块,用于生成断开任务,将断开任务存储至断开队列中,由部署于所述客户端的线程池执行所述断开任务,以断开与服务器之间的通信链路。
7.一种数据查询装置,其特征在于,应用于服务器,所述装置包括:
连接请求接收模块,用于接收客户端发送的连接请求;
链路建立模块,用于根据所述连接请求,建立与所述客户端之间的通信链路,并生成确认连接消息,将所述确认连接消息发送给所述客户端;
查询请求接收模块,用于接收客户端发送的目标数据查询请求;
数据提取模块,用于根据所述目标数据查询请求,生成查询任务,由部署于服务器的线程池执行所述查询任务,以从第一存储介质预先缓存的数据中获取与所述目标数据查询请求对应的目标数据,所述第一存储介质仅用于执行所述目标数据查询请求;
数据封装模块,用于将所述目标数据封装成目标数据消息发送给所述客户端。
8.根据权利要求7所述的数据查询装置,其特征在于,还包括:
数据缓存模块,用于创建从第二存储介质中获取数据的缓存任务,所述第二存储介质执行的请求类型大于所述第一存储介质执行的请求类型,且所述第二存储介质的读取速度小于所述第一存储介质的读取速度;由部署于服务器的线程池执行所述缓存任务,从所述第二存储介质中获取与缓存任务对应的数据,将所述与缓存任务对应的数据存储至所述第一存储介质中。
9.根据权利要求7所述的数据查询装置,其特征在于,还包括:
检测模块,用于如果当前时间为检测时间,创建检测任务,由部署于服务器的线程池执行所述检测任务,对所述第一存储介质和所述第二存储介质中存储的数据的一致性进行检测。
10.根据权利要求9所述的数据查询装置,其特征在于,还包括:
更新模块,用于若所述数据的一致性的检测结果表示所述第二存储介质中的数据相对于第一存储介质中的数据发生变动,创建数据更新任务;由所述部署于服务器的线程池执行所述数据更新任务,以从所述第二存储介质中获取增量数据,将所述增量数据存储至所述第一存储介质中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910892868.XA CN110674172A (zh) | 2019-09-20 | 2019-09-20 | 数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910892868.XA CN110674172A (zh) | 2019-09-20 | 2019-09-20 | 数据查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110674172A true CN110674172A (zh) | 2020-01-10 |
Family
ID=69077078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910892868.XA Withdrawn CN110674172A (zh) | 2019-09-20 | 2019-09-20 | 数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110674172A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111372092A (zh) * | 2020-03-04 | 2020-07-03 | 北京字节跳动网络技术有限公司 | 通信链路建立方法、装置、设备及存储介质 |
CN113934548A (zh) * | 2020-06-29 | 2022-01-14 | 北京沃东天骏信息技术有限公司 | 一种与依赖服务建立连接的方法和装置 |
CN116684467A (zh) * | 2023-08-02 | 2023-09-01 | 武汉吧哒科技股份有限公司 | 数据获取方法、电子设备及存储介质 |
-
2019
- 2019-09-20 CN CN201910892868.XA patent/CN110674172A/zh not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111372092A (zh) * | 2020-03-04 | 2020-07-03 | 北京字节跳动网络技术有限公司 | 通信链路建立方法、装置、设备及存储介质 |
CN113934548A (zh) * | 2020-06-29 | 2022-01-14 | 北京沃东天骏信息技术有限公司 | 一种与依赖服务建立连接的方法和装置 |
CN116684467A (zh) * | 2023-08-02 | 2023-09-01 | 武汉吧哒科技股份有限公司 | 数据获取方法、电子设备及存储介质 |
CN116684467B (zh) * | 2023-08-02 | 2023-10-27 | 武汉吧哒科技股份有限公司 | 数据获取方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3648401B1 (en) | Method, device, and computer readable storage medium for managing network slice | |
CN107947960B (zh) | 配置信息的推送方法及***、配置信息的接收方法及*** | |
CN111580995B (zh) | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与*** | |
CN102377686B (zh) | 一种消息订阅***、消息订阅方法及装置 | |
CN109873736A (zh) | 一种微服务监控方法及*** | |
CN110674172A (zh) | 数据查询方法及装置 | |
CN108200219A (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN112860282B (zh) | 集群插件的升级方法、装置和服务器 | |
CN105635083A (zh) | 基于服务器和客户端架构的业务处理方法及业务处理*** | |
CN110138753B (zh) | 分布式消息服务***、方法、设备及计算机可读存储介质 | |
CN113572864B (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
US8326913B2 (en) | Method and system for service contract discovery | |
CN114598749B (zh) | 一种服务访问方法及装置 | |
CN106911741B (zh) | 一种虚拟化网管文件下载负载均衡的方法及网管服务器 | |
CN115426361A (zh) | 分布式客户端打包方法、装置、主服务器及存储介质 | |
CN109947081B (zh) | 网联车辆控制方法及装置 | |
CN105430028A (zh) | 服务调用方法、提供方法及节点 | |
CN106375324B (zh) | 一种基于tcp/ip通信协议的网络通信***及方法 | |
CN112698929A (zh) | 一种信息采集方法及装置 | |
CN112968788A (zh) | 网络切片容量设置方法、控制方法、装置、设备及介质 | |
CN115640169A (zh) | 保障主集群停止提供服务的方法、***、设备和存储介质 | |
CN115632815A (zh) | 一种数据的更新方法、装置、电子设备及存储介质 | |
CN107102901B (zh) | 一种任务处理方法和装置 | |
CN111083182B (zh) | 分布式物联网设备管理方法及装置 | |
CN110443710B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200110 |