CN110287007A - 数据调用响应方法、服务器及计算机可读存储介质 - Google Patents
数据调用响应方法、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110287007A CN110287007A CN201910419872.4A CN201910419872A CN110287007A CN 110287007 A CN110287007 A CN 110287007A CN 201910419872 A CN201910419872 A CN 201910419872A CN 110287007 A CN110287007 A CN 110287007A
- Authority
- CN
- China
- Prior art keywords
- data
- response
- local
- call request
- cache system
- 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
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
- G06F16/24552—Database cache management
-
- 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
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- 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/541—Client-server
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据调用响应方法,包括:接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息;判断本地缓存系统是否缓存有与所述数据信息对应的目标数据;当本地缓存系统缓存有数据信息对应的目标数据时,从本地缓存系统中获取数据信息对应的目标数据;及当本地缓存系统未缓存有数据信息对应的目标数据时,根据数据信息进行非本地数据响应,并将经过非本地数据响应得到的目标数据保存至本地缓存系统。本发明还提供一种服务器及计算机可读存储介质。本发明涉及数据调用响应功能优化技术,可实现在调用方响应处理效率较慢情况下,亦可使得请求方和调用方稳定运行,提升用户使用体验。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及数据调用响应方法、服务器及计算机可读存储介质。
背景技术
随着移动互联网、云运算技术的不断发展,互联网提供的业务不断丰富,用户对数据获取的时效性的要求越来越高。同时,对于高请求量、高并发调用量的数据处理,服务器承受较大的压力,目前应对高请求量、高并发调用量的基本解决方案通常是采用多线程异步处理。但是,当调用方处理效率很慢时,会导致调用方系统崩溃,从而影响双方的稳定运行。例如,当用户使用终端侧的客户端时,客户端通常需要从服务器加载数据,当服务器配置较低时,客户端从服务器获取数据的过程过于缓慢和耗时,会导致客户端的加载速度很慢,从而可能会导致调用方系统崩溃,影响双方的稳定运行,严重影响用户的体验。
发明内容
有鉴于此,本发明提出一种数据调用响应方法、服务器及计算机可读存储介质,可在调用方响应处理效率较慢情况下,亦可使得请求方和调用方稳定运行,提升用户使用体验。
首先,为实现上述目的,本发明提出一种服务器,所述服务器包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的数据调用响应系统,所述数据调用响应系统被所述处理器执行时实现如下步骤:
接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求;
判断本地缓存系统是否缓存有与所述数据信息对应的目标数据;
当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据;及
当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。
可选地,所述当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统的步骤包括:
当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应;
判断是否在预设时间段内完成所述非本地数据响应;及
当在所述预设时间段内完成所述非本地数据响应时,将响应得到的目标数据返回给请求方,及将响应得到的目标数据保存至所述本地缓存系统。
可选地,所述判断是否在预设时间段内完成所述非本地数据响应之后的步骤还包括:
当在预设时间段内未完成所述非本地数据响应时,判断所述数据调用请求是否为一请求方的初次调用请求;
当所述数据调用请求为所述请求方的初次调用请求时,将预设数据作为所述数据调用请求的目标数据返回给所述请求方;及
当所述数据调用请求不是所述请求方的初次调用请求时,将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给请求方。
可选地,所述数据调用响应系统被所述处理器执行时还实现如下步骤:
利用Redis算法建立重复响应时间锁,以根据所述重复响应时间锁对在预设时间段内被判定为相同的多个数据调用请求进行单次数据调用请求响应。
此外,为实现上述目的,本发明还提供一种数据调用响应方法,应用于服务器,所述数据调用响应方法包括步骤:
接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求;
判断本地缓存系统是否缓存有与所述数据信息对应的目标数据;
当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据;及
当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。
可选地,所述当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统的步骤包括:
当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应;
判断是否在预设时间段内完成所述非本地数据响应;及
当在所述预设时间段内完成所述非本地数据响应时,将响应得到的目标数据返回给请求方,及将响应得到的目标数据保存至所述本地缓存系统。
可选地,所述判断是否在预设时间段内完成所述非本地数据响应之后的步骤还包括:
当在预设时间段内未完成所述非本地数据响应时,判断所述数据调用请求是否为一请求方的初次调用请求;
当所述数据调用请求为所述请求方的初次调用请求时,将预设数据作为所述数据调用请求的目标数据返回给所述请求方;及
当所述数据调用请求不是所述请求方的初次调用请求时,将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给请求方。
可选地,所述数据调用响应方法还包括步骤:
利用Redis算法建立重复响应时间锁,以根据所述重复响应时间锁对在预设时间段内被判定为相同的多个数据调用请求进行单次数据调用请求响应。
可选地,所述数据调用响应方法还包括步骤:
当未接收到请求方的数据调用请求时,对预设费时数据调用请求进行响应,并将响应得到的目标数据保存至所述本地缓存系统;
其中,所述预设费时数据调用请求为响应复杂程度满足预设条件的数据调用请求。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有数据调用响应系统,所述数据调用响应系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述数据调用响应方法的步骤。
相较于现有技术,本发明所提出的数据调用响应方法、服务器及计算机可读存储介质,首先,接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求;其次,判断本地缓存系统是否缓存有与所述数据信息对应的目标数据;再者,当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据;最后,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。这样,可以在接收到数据调用请求后,先判断本地缓存系统是否缓存有与请求调用的数据信息对应的目标数据,当本地缓存系统缓存有目标数据时,可直接从所述本地缓存系统中获取所述数据信息对应的目标数据,当本地缓存系统未缓存有目标数据时,可根据所述数据信息进行非本地数据响应并保存获取得到的目标数据,可实现在调用方响应处理效率较慢情况下,亦可使得请求方和调用方稳定运行,提升用户使用体验。
附图说明
图1是本发明服务器一可选的硬件架构的示意图;
图2是本发明数据调用响应系统第一实施例的程序模块示意图;
图3是本发明数据调用响应系统第二实施例的程序模块示意图;
图4为本发明数据调用响应方法第一实施例的步骤流程示意图;
图5为本发明数据调用响应方法第二实施例的步骤流程示意图。
附图标记:
服务器 | 2 |
网络 | 3 |
存储器 | 11 |
处理器 | 12 |
网络接口 | 13 |
数据调用响应系统 | 100 |
接收模块 | 101 |
判断模块 | 102 |
获取模块 | 103 |
响应模块 | 104 |
建立模块 | 105 |
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个所述特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图1所示,是本发明应用服务器2一可选的硬件架构的示意图。
本实施例中,所述应用服务器2可包括,但不仅限于,可通过系统总线相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图2仅示出了具有组件11-13的应用服务器2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
其中,所述应用服务器2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,所述应用服务器2可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机调用存储器(RAM)、静态随机调用存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述应用服务器2的内部存储单元,例如所述应用服务器2的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述应用服务器2的外部存储设备,例如所述应用服务器2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器11还可以既包括所述应用服务器2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器11通常用于存储安装于所述应用服务器2的操作系统和各类应用软件,例如数据调用响应系统100的程序代码等。此外,所述存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。所述处理器12通常用于控制所述应用服务器2的总体操作。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行所述的数据调用响应系统100等。
所述网络接口13可包括无线网络接口或有线网络接口,所述网络接口13通常用于在所述应用服务器2与其他电子设备之间建立通信连接。
至此,己经详细介绍了本发明相关设备的硬件结构和功能。下面,将基于上述介绍提出本发明的各个实施例。
首先,本发明提出一种数据调用响应系统100。
参阅图2所示,是本发明数据调用响应系统100第一实施例的程序模块图。
本实施例中,所述数据调用响应系统100包括一系列的存储于存储器11上的计算机程序指令,当所述计算机程序指令被处理器12执行时,可以实现本发明各实施例的数据调用响应操作。在一些实施例中,基于所述计算机程序指令各部分所实现的特定的操作,数据调用响应系统100可以被划分为一个或多个模块。例如,在图2中,数据调用响应系统100可以被分割成接收模块101、判断模块102、获取模块103及响应模块104。其中:
所述接收模块101用于接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求。
在一实施例中,所述数据调用请求可以包括至少一个请求方发出的至少一个调用请求,即所述数据调用请求可以包括多个请求方发出的多个调用请求。所述请求方可以是终端设备。所述终端设备可以产生相应的数据调用请求,并将所述数据调用请求发送给所述接收模块101。所述数据调用请求携带有所要得到的数据对应的数据信息,所述数据信息用于使服务器调用相对应的数据并反馈给所述终端设备。所述数据信息可以是数据的标识信息。所述接收模块101接收所述数据调用请求后,还可以解析所述数据调用请求以得到相应的数据信息,进而可以根据所述数据信息查找或获取与所述数据调用请求匹配的数据。
在一实施例中,所述数据调用请求中包含所要调用的数据信息对应的参数信息。终端设备发送的数据调用请求中的参数信息可以利用预设加密算法进行加密以得到所述数据信息,通过加密处理可提高数据传输的安全性。其中,所述预设加密算法可以采用已有的加密算法,例如,三重数据加密算法(Triple Data Encryption Algorithm,TDEA)、安全哈希算法(Secure Hash Algorithm,SHA)、消息摘要算法5(Message Digest Algorithm5,MDA5)等。可以理解的是,当所述数据信息有经过加密处理时,所述接收模块101在解析所述数据调用请求时,还需要调用对应的解密算法对所述数据信息进行解密处理,以得到所述数据调用请求所请求调用的数据信息。
所述判断模块102用于判断本地缓存系统是否缓存有与所述数据信息对应的目标数据。
在一实施例中,所述本地缓存系统可以是服务器的本地数据库。所述本地数据库可以具有数据索引。所述判断模块102可以在获得所述数据信息后判断所述数据索引中是否包含所述数据信息。具体地,所述判断模块102可以通过如下方式实现判断所述数据索引中是否包含所述数据信息:查找缓存数据索引中是否包含所述数据信息,如果所述数据索引中包含所述数据信息,则所述判断模块102确定本地缓存系统中包含所述数据信息对应的目标数据;如果所述数据索引中不包含所述数据信息,则所述判断模块102确定本地缓存系统中不包含所述数据信息对应的目标数据。
当所述本地缓存系统缓存有所述数据信息对应的目标数据时,所述获取模块103用于从所述本地缓存系统中获取所述数据信息对应的目标数据。
在一实施例中,如果本地缓存系统中包含有所述数据信息对应的目标数据,则所述获取模块103可以直接请求从本地缓存系统中获取所述数据信息对应的目标数据,并返回给终端设备。
当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,所述响应模块104用于根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。
在一实施例中,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,表明无法从本地缓存系统中提取与所述数据信息对应的目标数据,此时所述响应模块104需要进行非本地数据响应,所述非本地数据响应可以是指从其他服务器或者数据源获取与所述数据信息对应的目标数据。
在一实施例中,所述响应模块104可以采用异步线程来实现获取所述数据信息对应的目标数据并返回给终端设备,并将获取得到的与所述数据信息对应的目标数据保存至所述本地缓存系统,以加快数据响应速度。举例而言,所述响应模块104可以采用一个线程根据所述数据信息进行非本地数据响应,并将所述数据信息对应的目标数据返回给终端设备,所述响应模块104可以采用另一个线程将获取得到的与所述数据信息对应的目标数据保存至所述本地缓存系统。
在一实施例中,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,所述响应模块104根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统的具体方式可以是:当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,所述响应模块104需要根据所述数据信息进行非本地数据响应;判断是否在预设时间段内完成所述非本地数据响应;当在所述预设时间段内完成所述非本地数据响应时,所述响应模块104将响应得到的目标数据返回给请求方,及将响应得到的目标数据保存至所述本地缓存系统。
在一实施例中,当所述响应模块104未在预设时间段内未完成所述非本地数据响应时,判断所述数据调用请求是否为一请求方的初次调用请求。当所述数据调用请求为所述请求方的初次调用请求时,所述响应模块104还用于将预设数据作为所述数据调用请求的目标数据返回给所述请求方。当所述数据调用请求不是所述请求方的初次调用请求时,所述响应模块104还用于将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给请求方。
在一实施例中,若所述响应模块104未能在预设时间段内完成所述非本地数据响应,对于请求方的初次数据调用请求,所述响应模块104会返回一预先设定的数据给终端设备,进而避免由于调用方数据处理性能较慢导致前端无内容可显示,以提高用户体验。若请求方不是初次数据调用请求,则所述响应模块104可以将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给终端设备。可以理解,此时用户在终端设备看到的数据不是实时更新的数据,而是上次同步请求方的数据。当所述响应模块104完成非本地数据响应后,所述响应模块104还可以再将获取得到的数据同步到终端设备,同时将本次获取得到的数据保存至所述本地缓存系统。
在一实施例中,当未接收到请求方的数据调用请求时,表明当前服务器的资源较空闲,此时所述响应模块104可以对预设费时数据调用请求进行响应,并将响应得到的目标数据保存至所述本地缓存系统;其中,所述预设费时数据调用请求为响应复杂程度满足预设条件的数据调用请求。
在一实施例中,所述预设费时数据调用请求为响应复杂程度满足预设条件的数据调用请求,即所述费时数据调用请求可以是指响应数据调用花费的时间较多的数据调用请求。可以理解,服务器在面对高并发调用量时容易宕机的很大一部分原因应归咎于费时数据调用请求对服务器处理资源的长期占用。若是在服务器调用压力比较大的情况下,所述响应模块104能够不花费大量的处理时间和处理资源来对这些费时数据调用请求进行处理,则可以节省较多的时间资源和处理资源来对其他数据调用请求进行处理,从而在一定程度上降低数据调用请求在服务侧堆积,造成服务器宕机的可能性。
在一实施例中,在接收到数据调用请求时,若所述判断模块102确定当前接收到的数据调用请求是费时数据调用请求且预先被响应过,则所述响应模块104可以直接从本地缓存系统中提取出对应的目标数据,进而对该数据调用请求进行响应。由于请求方在发起数据调用请求之前,服务器已经准备好了该数据调用请求的响应结果,可减轻服务器的处理压力。
通过上述程序模块101-104,本发明所提出的数据调用响应系统100,首先,接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求;其次,判断本地缓存系统是否缓存有与所述数据信息对应的目标数据;再者,当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据;最后,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。这样,可以在接收到数据调用请求后,先判断本地缓存系统是否缓存有与请求调用的数据信息对应的目标数据,当本地缓存系统缓存有目标数据时,可直接从所述本地缓存系统中获取所述数据信息对应的目标数据,当本地缓存系统未缓存有目标数据时,可根据所述数据信息进行非本地数据响应并保存获取得到的目标数据,可实现在调用方响应处理效率较慢情况下,亦可使得请求方和调用方稳定运行,提升用户使用体验。
参阅图3所示,是本发明数据调用响应系统100第二实施例的程序模块图。本实施例中,所述数据调用响应系统100包括一系列的存储于存储器11上的计算机程序指令,当所述计算机程序指令被处理器12执行时,可以实现本发明各实施例的数据调用响应操作。在一些实施例中,基于所述计算机程序指令各部分所实现的特定的操作,数据调用响应系统100可以被划分为一个或多个模块。例如,在图3中,数据调用响应系统100可以被分割成接收模块101、判断模块102、获取模块103、响应模块104及建立模块105。所述各程序模块101-104与本发明数据调用响应系统100第一实施例相同,并在此基础上增加建立模块105。其中:
所述接收模块101用于接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求。
在一实施例中,所述数据调用请求可以包括至少一个请求方发出的至少一个调用请求,即所述数据调用请求可以包括多个请求方发出的多个调用请求。所述请求方可以是终端设备。所述终端设备可以产生相应的数据调用请求,并将所述数据调用请求发送给所述接收模块101。所述数据调用请求携带有所要得到的数据对应的数据信息,所述数据信息用于使服务器调用相对应的数据并反馈给所述终端设备。所述数据信息可以是数据的标识信息。所述接收模块101接收所述数据调用请求后,还可以解析所述数据调用请求以得到相应的数据信息,进而可以根据所述数据信息查找或获取与所述数据调用请求匹配的数据。
在一实施例中,所述数据调用请求中包含所要调用的数据信息对应的参数信息。终端设备发送的数据调用请求中的参数信息可以利用预设加密算法进行加密,以得到所述数据信息,通过加密处理可提高数据传输的安全性。其中,所述预设加密算法可以采用已有的加密算法,例如,三重数据加密算法(Triple Data Encryption Algorithm,TDEA)、安全哈希算法(Secure Hash Algorithm,SHA)、消息摘要算法5(Message Digest Algorithm5,MDA5)等。可以理解的是,当所述数据信息有经过加密处理时,所述接收模块101在解析所述数据调用请求时,还需要调用对应的解密算法对所述数据信息进行解密处理,以得到所述数据调用请求所请求调用的数据信息。
所述建立模块105用于利用Redis算法建立重复响应时间锁,以根据所述重复响应时间锁对在预设时间段内被判定为相同的多个数据调用请求进行单次数据调用请求响应。
在一实施例中,所述建立模块105对在预设时间内属于相同数据调用请求建立重复响应时间锁,进而可以实现在预定时间内不去响应重复数据调用请求。所述建立模块105可以在数据调用业务允许的范围内设置所述预设时间段。所述建立模块105可以利用Redis算法实现所述时间锁功能,以降低对调用方的请求量。具体地,当第一个数据调用请求被执行时,所述建立模块105创建目标数据的Redis键值,初始值为0。当Redis键值为0时,则所述建立模块105允许对所述数据调用请求进行响应,并将Redis键值自增1;当Redis键值大于0时,则所述建立模块105认为某次数据调用请求获取了所述目标数据的调用,结束数据调用请求流程。当在所述预设时间后,所述建立模块105再将Redis键值删除。
所述判断模块102用于判断本地缓存系统是否缓存有与所述数据信息对应的目标数据。
在一实施例中,所述本地缓存系统可以是服务器的本地数据库。所述本地数据库可以具有数据索引。所述判断模块102可以在获得所述数据信息后判断所述数据索引中是否包含所述数据信息。具体地,所述判断模块102可以通过如下方式实现判断所述数据索引中是否包含所述数据信息:查找缓存数据索引中是否包含所述数据信息,如果所述数据索引中包含所述数据信息,则所述判断模块102确定本地缓存系统中包含所述数据信息对应的目标数据;如果所述数据索引中不包含所述数据信息,则所述判断模块102确定本地缓存系统中不包含所述数据信息对应的目标数据。
当所述本地缓存系统缓存有所述数据信息对应的目标数据时,所述获取模块103用于从所述本地缓存系统中获取所述数据信息对应的目标数据。
在一实施例中,如果本地缓存系统中包含有所述数据信息对应的目标数据,则所述获取模块103可以直接请求从本地缓存系统中获取所述数据信息对应的目标数据,并返回给终端设备。
当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,所述响应模块104用于根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。
在一实施例中,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,表明无法从本地缓存系统中提取与所述数据信息对应的目标数据,此时所述响应模块104需要进行非本地数据响应,所述非本地数据响应可以是指从其他服务器或者数据源获取与所述数据信息对应的目标数据。
在一实施例中,所述响应模块104可以采用异步线程来实现获取所述数据信息对应的目标数据并返回给终端设备,并将获取得到的与所述数据信息对应的目标数据保存至所述本地缓存系统,以加快数据响应速度。举例而言,所述响应模块104可以采用一个线程根据所述数据信息进行非本地数据响应,并将所述数据信息对应的目标数据返回给终端设备,所述响应模块104可以采用另一个线程将获取得到的与所述数据信息对应的目标数据保存至所述本地缓存系统。
在一实施例中,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,所述响应模块104根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统的具体方式可以是:当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,所述响应模块104需要根据所述数据信息进行非本地数据响应;判断是否在预设时间段内完成所述非本地数据响应;当在所述预设时间段内完成所述非本地数据响应时,所述响应模块104将响应得到的目标数据返回给请求方,及将响应得到的目标数据保存至所述本地缓存系统。
在一实施例中,当所述响应模块104未在预设时间段内未完成所述非本地数据响应时,判断所述数据调用请求是否为一请求方的初次调用请求。当所述数据调用请求为所述请求方的初次调用请求时,所述响应模块104还用于将预设数据作为所述数据调用请求的目标数据返回给所述请求方。当所述数据调用请求不是所述请求方的初次调用请求时,所述响应模块104还用于将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给请求方。
在一实施例中,若所述响应模块104未能在预设时间段内完成所述非本地数据响应,对于请求方的初次数据调用请求,所述响应模块104会返回一预先设定的数据给终端设备,进而避免由于调用方数据处理性能较慢导致前端无内容可显示,以提高用户体验。若请求方不是初次数据调用请求,则所述响应模块104可以将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给终端设备。可以理解,此时用户在终端设备看到的数据不是实时更新的数据,而是上次同步请求方的数据。当所述响应模块104完成非本地数据响应后,所述响应模块104还可以再将获取得到的数据同步到终端设备,同时将本次获取得到的数据保存至所述本地缓存系统。
在一实施例中,当未接收到请求方的数据调用请求时,表明当前服务器的资源较空闲,此时所述响应模块104可以对预设费时数据调用请求进行响应,并将响应得到的目标数据保存至所述本地缓存系统;其中,所述预设费时数据调用请求为响应复杂程度满足预设条件的数据调用请求。
在一实施例中,所述预设费时数据调用请求为响应复杂程度满足预设条件的数据调用请求,即所述费时数据调用请求可以是指响应数据调用花费的时间较多的数据调用请求。可以理解,服务器在面对高并发调用量时容易宕机的很大一部分原因应归咎于费时数据调用请求对服务器处理资源的长期占用。若是在服务器调用压力比较大的情况下,所述响应模块104能够不花费大量的处理时间和处理资源来对这些费时数据调用请求进行处理,则可以节省较多的时间资源和处理资源来对其他数据调用请求进行处理,从而在一定程度上降低数据调用请求在服务侧堆积,造成服务器宕机的可能性。
在一实施例中,在接收到数据调用请求时,若所述判断模块102确定当前接收到的数据调用请求是费时数据调用请求且预先被响应过,则所述响应模块104可以直接从本地缓存系统中提取出对应的目标数据,进而对该数据调用请求进行响应。由于请求方在发起数据调用请求之前,服务器已经准备好了该数据调用请求的响应结果,可减轻服务器的处理压力。
通过上述程序模块101-105,本发明所提出的数据调用响应系统100,首先,接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求;其次,利用Redis算法建立重复响应时间锁,以根据所述重复响应时间锁对在预设时间段内被判定为相同的多个数据调用请求进行单次数据调用请求响应;再者,判断本地缓存系统是否缓存有与所述数据信息对应的目标数据;再者,当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据;最后,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。这样,可以在接收到数据调用请求后,先判断本地缓存系统是否缓存有与请求调用的数据信息对应的目标数据,当本地缓存系统缓存有目标数据时,可直接从所述本地缓存系统中获取所述数据信息对应的目标数据,当本地缓存系统未缓存有目标数据时,可根据所述数据信息进行非本地数据响应并保存获取得到的目标数据,同时对相同的数据请求设定一个时间锁,实现在保证高并发的情况下,进一步缓解调用方的数据处理压力,可实现在调用方响应处理效率较慢情况下,亦可使得请求方和调用方稳定运行,提升用户使用体验。
此外,本发明还提出一种数据调用响应方法。
参阅图4所示,是本发明数据调用响应方法第一实施例的实施流程示意图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
步骤S400,接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求。
在一实施例中,所述数据调用请求可以包括至少一个请求方发出的至少一个调用请求,即所述数据调用请求可以包括多个请求方发出的多个调用请求。所述请求方可以是终端设备。所述终端设备可以产生相应的数据调用请求。所述数据调用请求携带有所要得到的数据对应的数据信息,所述数据信息用于使服务器调用相对应的数据并反馈给所述终端设备。所述数据信息可以是数据的标识信息。当接收所述数据调用请求后,还可以解析所述数据调用请求以得到相应的数据信息,进而可以根据所述数据信息查找或获取与所述数据调用请求匹配的数据。
在一实施例中,所述数据调用请求中包含所要调用的数据信息对应的参数信息。终端设备发送的数据调用请求中的参数信息可以利用预设加密算法进行加密以得到所述数据信息,通过加密处理可提高数据传输的安全性。其中,所述预设加密算法可以采用已有的加密算法,例如,三重数据加密算法(Triple Data Encryption Algorithm,TDEA)、安全哈希算法(Secure Hash Algorithm,SHA)、消息摘要算法5(Message Digest Algorithm5,MDA5)等。可以理解的是,当所述数据信息有经过加密处理时,在解析所述数据调用请求时,还需要调用对应的解密算法对所述数据信息进行解密处理,以得到所述数据调用请求所请求调用的数据信息。
步骤S402,判断本地缓存系统是否缓存有与所述数据信息对应的目标数据。
在一实施例中,所述本地缓存系统可以是服务器的本地数据库。所述本地数据库可以具有数据索引。可以在获得所述数据信息后判断所述数据索引中是否包含所述数据信息。具体地,可以通过如下方式实现判断所述数据索引中是否包含所述数据信息:查找缓存数据索引中是否包含所述数据信息,如果所述数据索引中包含所述数据信息,则确定本地缓存系统中包含所述数据信息对应的目标数据;如果所述数据索引中不包含所述数据信息,则确定本地缓存系统中不包含所述数据信息对应的目标数据。
步骤S404,当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据。
在一实施例中,如果本地缓存系统中包含有所述数据信息对应的目标数据,则可以直接请求从本地缓存系统中获取所述数据信息对应的目标数据,并返回给终端设备。
步骤S406,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。
在一实施例中,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,表明无法从本地缓存系统中提取与所述数据信息对应的目标数据,此时需要进行非本地数据响应,所述非本地数据响应可以是指从其他服务器或者数据源获取与所述数据信息对应的目标数据。
在一实施例中,可以采用异步线程来实现获取所述数据信息对应的目标数据并返回给终端设备,并将获取得到的与所述数据信息对应的目标数据保存至所述本地缓存系统,以加快数据响应速度。举例而言,可以采用一个线程根据所述数据信息进行非本地数据响应,并将所述数据信息对应的目标数据返回给终端设备,可以采用另一个线程将获取得到的与所述数据信息对应的目标数据保存至所述本地缓存系统。
在一实施例中,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,可以根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统的具体步骤可以是:当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应;判断是否在预设时间段内完成所述非本地数据响应;当在所述预设时间段内完成所述非本地数据响应时,将响应得到的目标数据返回给请求方,及将响应得到的目标数据保存至所述本地缓存系统。
在一实施例中,若未在预设时间段内未完成所述非本地数据响应,则判断所述数据调用请求是否为一请求方的初次调用请求。当所述数据调用请求为所述请求方的初次调用请求时,将预设数据作为所述数据调用请求的目标数据返回给所述请求方。当所述数据调用请求不是所述请求方的初次调用请求时,将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给请求方。
在一实施例中,若未能在预设时间段内完成所述非本地数据响应,对于请求方的初次数据调用请求,可以返回一预先设定的数据给终端设备,进而避免由于调用方数据处理性能较慢导致前端无内容可显示,以提高用户体验。若请求方不是初次数据调用请求,则可以将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给终端设备。可以理解,此时用户在终端设备看到的数据不是实时更新的数据,而是上次同步请求方的数据。当完成非本地数据响应后,还可以再将获取得到的数据同步到终端设备,同时将本次获取得到的数据保存至所述本地缓存系统。
在一实施例中,当未接收到请求方的数据调用请求时,表明当前服务器的资源较空闲,此时可以对预设费时数据调用请求进行响应,并将响应得到的目标数据保存至所述本地缓存系统,实现充分利用系统资源;其中,所述预设费时数据调用请求为响应复杂程度满足预设条件的数据调用请求。
在一实施例中,所述预设费时数据调用请求为响应复杂程度满足预设条件的数据调用请求,即所述费时数据调用请求可以是指响应数据调用花费的时间较多的数据调用请求。可以理解,服务器在面对高并发调用量时容易宕机的很大一部分原因应归咎于费时数据调用请求对服务器处理资源的长期占用。若是在服务器调用压力比较大的情况下,能够不花费大量的处理时间和处理资源来对这些费时数据调用请求进行处理,则可以节省较多的时间资源和处理资源来对其他数据调用请求进行处理,从而在一定程度上降低数据调用请求在服务侧堆积,造成服务器宕机的可能性。
在一实施例中,在接收到数据调用请求时,若确定当前接收到的数据调用请求是费时数据调用请求且预先被响应过,则可以直接从本地缓存系统中提取出对应的目标数据,进而对该数据调用请求进行响应。由于请求方在发起数据调用请求之前,服务器已经准备好了该数据调用请求的响应结果,可减轻服务器的处理压力。
通过上述步骤S400-S406,本发明所提出的数据调用响应方法,首先,接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求;其次,判断本地缓存系统是否缓存有与所述数据信息对应的目标数据;再者,当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据;最后,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。这样,可以在接收到数据调用请求后,先判断本地缓存系统是否缓存有与请求调用的数据信息对应的目标数据,当本地缓存系统缓存有目标数据时,可直接从所述本地缓存系统中获取所述数据信息对应的目标数据,当本地缓存系统未缓存有目标数据时,可根据所述数据信息进行非本地数据响应并保存获取得到的目标数据,可实现在调用方响应处理效率较慢情况下,亦可使得请求方和调用方稳定运行,提升用户使用体验。
参阅图5所示,是本发明数据调用响应方法第二实施例的实施流程示意图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
步骤S400,接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求。
在一实施例中,所述数据调用请求可以包括至少一个请求方发出的至少一个调用请求,即所述数据调用请求可以包括多个请求方发出的多个调用请求。所述请求方可以是终端设备。所述终端设备可以产生相应的数据调用请求。所述数据调用请求携带有所要得到的数据对应的数据信息,所述数据信息用于使服务器调用相对应的数据并反馈给所述终端设备。所述数据信息可以是数据的标识信息。当接收所述数据调用请求后,还可以解析所述数据调用请求以得到相应的数据信息,进而可以根据所述数据信息查找或获取与所述数据调用请求匹配的数据。
在一实施例中,所述数据调用请求中包含所要调用的数据信息对应的参数信息。终端设备发送的数据调用请求中的参数信息可以利用预设加密算法进行加密以得到所述数据信息,通过加密处理可提高数据传输的安全性。其中,所述预设加密算法可以采用已有的加密算法,例如,三重数据加密算法(Triple Data Encryption Algorithm,TDEA)、安全哈希算法(Secure Hash Algorithm,SHA)、消息摘要算法5(Message Digest Algorithm5,MDA5)等。可以理解的是,当所述数据信息有经过加密处理时,在解析所述数据调用请求时,还需要调用对应的解密算法对所述数据信息进行解密处理,以得到所述数据调用请求所请求调用的数据信息。
步骤S408,利用Redis算法建立重复响应时间锁,以根据所述重复响应时间锁对在预设时间段内被判定为相同的多个数据调用请求进行单次数据调用请求响应。
在一实施例中,对在预设时间内属于相同数据调用请求建立重复响应时间锁,进而可以实现在预定时间内不去响应重复数据调用请求。可以在数据调用业务允许的范围内设置所述预设时间段,可以利用Redis算法实现所述时间锁功能,以降低对调用方的请求量。具体地,当第一个数据调用请求被执行时,创建目标数据的Redis键值,初始值为0。当Redis键值为0时,则允许对所述数据调用请求进行响应,并将Redis键值自增1;当Redis键值大于0时,则认为某次数据调用请求获取了所述目标数据的调用,结束数据调用请求流程。当在所述预设时间后,再将Redis键值删除。
步骤S402,判断本地缓存系统是否缓存有与所述数据信息对应的目标数据。
在一实施例中,所述本地缓存系统可以是服务器的本地数据库。所述本地数据库可以具有数据索引。可以在获得所述数据信息后判断所述数据索引中是否包含所述数据信息。具体地,可以通过如下方式实现判断所述数据索引中是否包含所述数据信息:查找缓存数据索引中是否包含所述数据信息,如果所述数据索引中包含所述数据信息,则确定本地缓存系统中包含所述数据信息对应的目标数据;如果所述数据索引中不包含所述数据信息,则确定本地缓存系统中不包含所述数据信息对应的目标数据。
步骤S404,当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据。
在一实施例中,如果本地缓存系统中包含有所述数据信息对应的目标数据,则可以直接请求从本地缓存系统中获取所述数据信息对应的目标数据,并返回给终端设备。
步骤S406,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。
在一实施例中,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,表明无法从本地缓存系统中提取与所述数据信息对应的目标数据,此时需要进行非本地数据响应,所述非本地数据响应可以是指从其他服务器或者数据源获取与所述数据信息对应的目标数据。
在一实施例中,可以采用异步线程来实现获取所述数据信息对应的目标数据并返回给终端设备,并将获取得到的与所述数据信息对应的目标数据保存至所述本地缓存系统,以加快数据响应速度。举例而言,可以采用一个线程根据所述数据信息进行非本地数据响应,并将所述数据信息对应的目标数据返回给终端设备,可以采用另一个线程将获取得到的与所述数据信息对应的目标数据保存至所述本地缓存系统。
在一实施例中,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,可以根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统的具体步骤可以是:当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应;判断是否在预设时间段内完成所述非本地数据响应;当在所述预设时间段内完成所述非本地数据响应时,将响应得到的目标数据返回给请求方,及将响应得到的目标数据保存至所述本地缓存系统。
在一实施例中,若未在预设时间段内未完成所述非本地数据响应,则判断所述数据调用请求是否为一请求方的初次调用请求。当所述数据调用请求为所述请求方的初次调用请求时,将预设数据作为所述数据调用请求的目标数据返回给所述请求方。当所述数据调用请求不是所述请求方的初次调用请求时,将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给请求方。
在一实施例中,若未能在预设时间段内完成所述非本地数据响应,对于请求方的初次数据调用请求,可以返回一预先设定的数据给终端设备,进而避免由于调用方数据处理性能较慢导致前端无内容可显示,以提高用户体验。若请求方不是初次数据调用请求,则可以将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给终端设备。可以理解,此时用户在终端设备看到的数据不是实时更新的数据,而是上次同步请求方的数据。当完成非本地数据响应后,还可以再将获取得到的数据同步到终端设备,同时将本次获取得到的数据保存至所述本地缓存系统。
在一实施例中,当未接收到请求方的数据调用请求时,表明当前服务器的资源较空闲,此时可以对预设费时数据调用请求进行响应,并将响应得到的目标数据保存至所述本地缓存系统,实现充分利用系统资源;其中,所述预设费时数据调用请求为响应复杂程度满足预设条件的数据调用请求。
在一实施例中,所述预设费时数据调用请求为响应复杂程度满足预设条件的数据调用请求,即所述费时数据调用请求可以是指响应数据调用花费的时间较多的数据调用请求。可以理解,服务器在面对高并发调用量时容易宕机的很大一部分原因应归咎于费时数据调用请求对服务器处理资源的长期占用。若是在服务器调用压力比较大的情况下,能够不花费大量的处理时间和处理资源来对这些费时数据调用请求进行处理,则可以节省较多的时间资源和处理资源来对其他数据调用请求进行处理,从而在一定程度上降低数据调用请求在服务侧堆积,造成服务器宕机的可能性。
在一实施例中,在接收到数据调用请求时,若确定当前接收到的数据调用请求是费时数据调用请求且预先被响应过,则可以直接从本地缓存系统中提取出对应的目标数据,进而对该数据调用请求进行响应。由于请求方在发起数据调用请求之前,服务器已经准备好了该数据调用请求的响应结果,可减轻服务器的处理压力。
通过上述步骤S400-S408,本发明所提出的数据调用响应方法,首先,接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求;其次,利用Redis算法建立重复响应时间锁,以根据所述重复响应时间锁对在预设时间段内被判定为相同的多个数据调用请求进行单次数据调用请求响应;再者,判断本地缓存系统是否缓存有与所述数据信息对应的目标数据;再者,当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据;最后,当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。这样,可以在接收到数据调用请求后,先判断本地缓存系统是否缓存有与请求调用的数据信息对应的目标数据,当本地缓存系统缓存有目标数据时,可直接从所述本地缓存系统中获取所述数据信息对应的目标数据,当本地缓存系统未缓存有目标数据时,可根据所述数据信息进行非本地数据响应并保存获取得到的目标数据,同时对相同的数据请求设定一个时间锁,实现在保证高并发的情况下,进一步缓解调用方的数据处理压力,可实现在调用方响应处理效率较慢情况下,亦可使得请求方和调用方稳定运行,提升用户使用体验。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据调用响应方法,应用于服务器,其特征在于,所述数据调用响应方法包括步骤:
接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求;
判断本地缓存系统是否缓存有与所述数据信息对应的目标数据;
当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据;及
当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。
2.如权利要求1所述的数据调用响应方法,其特征在于,所述当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统的步骤包括:
当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应;
判断是否在预设时间段内完成所述非本地数据响应;及
当在所述预设时间段内完成所述非本地数据响应时,将响应得到的目标数据返回给请求方,及将响应得到的目标数据保存至所述本地缓存系统。
3.如权利要求2所述的数据调用响应方法,其特征在于,所述判断是否在预设时间段内完成所述非本地数据响应之后的步骤还包括:
当在预设时间段内未完成所述非本地数据响应时,判断所述数据调用请求是否为一请求方的初次调用请求;
当所述数据调用请求为所述请求方的初次调用请求时,将预设数据作为所述数据调用请求的目标数据返回给所述请求方;及
当所述数据调用请求不是所述请求方的初次调用请求时,将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给请求方。
4.如权利要求1-3任意一项所述的数据调用响应方法,其特征在于,所述数据调用响应方法还包括步骤:
利用Redis算法建立重复响应时间锁,以根据所述重复响应时间锁对在预设时间段内被判定为相同的多个数据调用请求进行单次数据调用请求响应。
5.如权利要求1-3任意一项所述的数据调用响应方法,其特征在于,所述数据调用响应方法还包括步骤:
当未接收到请求方的数据调用请求时,对预设费时数据调用请求进行响应,并将响应得到的目标数据保存至所述本地缓存系统;
其中,所述预设费时数据调用请求为响应复杂程度满足预设条件的数据调用请求。
6.一种服务器,其特征在于,所述服务器包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的数据调用响应系统,所述数据调用响应系统被所述处理器执行时实现如下步骤:
接收并解析数据调用请求,以得到所述数据调用请求所请求调用的数据信息,其中所述数据调用请求包括至少一个请求方发出的至少一个调用请求;
判断本地缓存系统是否缓存有与所述数据信息对应的目标数据;
当所述本地缓存系统缓存有所述数据信息对应的目标数据时,从所述本地缓存系统中获取所述数据信息对应的目标数据;及
当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统。
7.如权利要求6所述的服务器,其特征在于,所述当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应,并将经过所述非本地数据响应得到的目标数据保存至所述本地缓存系统的步骤包括:
当所述本地缓存系统未缓存有所述数据信息对应的目标数据时,根据所述数据信息进行非本地数据响应;
判断是否在预设时间段内完成所述非本地数据响应;及
当在所述预设时间段内完成所述非本地数据响应时,将响应得到的目标数据返回给请求方,及将响应得到的目标数据保存至所述本地缓存系统。
8.如权利要求7所述的服务器,其特征在于,所述判断是否在预设时间段内完成所述非本地数据响应之后的步骤还包括:
当在预设时间段内未完成所述非本地数据响应时,判断所述数据调用请求是否为一请求方的初次调用请求;
当所述数据调用请求为所述请求方的初次调用请求时,将预设数据作为所述数据调用请求的目标数据返回给所述请求方;及
当所述数据调用请求不是所述请求方的初次调用请求时,将响应所述请求方的上一次数据调用请求的数据作为所述数据调用请求的目标数据返回给请求方。
9.如权利要求6-8任意一项所述的服务器,其特征在于,所述数据调用响应系统被所述处理器执行时还实现如下步骤:
利用Redis算法建立重复响应时间锁,以根据所述重复响应时间锁对在预设时间段内被判定为相同的多个数据调用请求进行单次数据调用请求响应。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有数据调用响应系统,所述数据调用响应系统可被至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-5中任一项所述的数据调用响应方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910419872.4A CN110287007A (zh) | 2019-05-20 | 2019-05-20 | 数据调用响应方法、服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910419872.4A CN110287007A (zh) | 2019-05-20 | 2019-05-20 | 数据调用响应方法、服务器及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110287007A true CN110287007A (zh) | 2019-09-27 |
Family
ID=68002192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910419872.4A Pending CN110287007A (zh) | 2019-05-20 | 2019-05-20 | 数据调用响应方法、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287007A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404593A (zh) * | 2020-03-13 | 2020-07-10 | 北京华云星地通科技有限公司 | 卫星遥感数据的处理方法 |
CN111522605A (zh) * | 2020-04-16 | 2020-08-11 | 艾普阳科技(深圳)有限公司 | 一种本地过程调用方法、装置、设备及介质 |
CN112241473A (zh) * | 2020-09-07 | 2021-01-19 | 上海连尚网络科技有限公司 | 一种用于为应用配置数据的方法与设备 |
CN117724852A (zh) * | 2024-02-07 | 2024-03-19 | 微网优联科技(成都)有限公司 | 一种云电脑计算资源分配方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100053343A (ko) * | 2008-11-12 | 2010-05-20 | 양범석 | 온라인에서 유에스비메모리에 장착된 컨트롤칩의 고유번호와 임의의 암호화파일을 저장한 저장영역의 섹터값을 이용한 사용자 인증방법 |
CN103631777A (zh) * | 2012-08-21 | 2014-03-12 | 腾讯科技(深圳)有限公司 | 浏览图像的方法和系统 |
CN106911782A (zh) * | 2017-02-28 | 2017-06-30 | 北京微影时代科技有限公司 | 一种数据读取方法及装置 |
CN109343961A (zh) * | 2018-10-12 | 2019-02-15 | Oppo广东移动通信有限公司 | 内存信息的处理方法、装置、存储介质及终端 |
CN109446114A (zh) * | 2018-10-12 | 2019-03-08 | 咪咕文化科技有限公司 | 一种空间数据缓存方法、装置和存储介质 |
CN109684358A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 数据查询的方法和装置 |
-
2019
- 2019-05-20 CN CN201910419872.4A patent/CN110287007A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100053343A (ko) * | 2008-11-12 | 2010-05-20 | 양범석 | 온라인에서 유에스비메모리에 장착된 컨트롤칩의 고유번호와 임의의 암호화파일을 저장한 저장영역의 섹터값을 이용한 사용자 인증방법 |
CN103631777A (zh) * | 2012-08-21 | 2014-03-12 | 腾讯科技(深圳)有限公司 | 浏览图像的方法和系统 |
CN106911782A (zh) * | 2017-02-28 | 2017-06-30 | 北京微影时代科技有限公司 | 一种数据读取方法及装置 |
CN109684358A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 数据查询的方法和装置 |
CN109343961A (zh) * | 2018-10-12 | 2019-02-15 | Oppo广东移动通信有限公司 | 内存信息的处理方法、装置、存储介质及终端 |
CN109446114A (zh) * | 2018-10-12 | 2019-03-08 | 咪咕文化科技有限公司 | 一种空间数据缓存方法、装置和存储介质 |
Non-Patent Citations (1)
Title |
---|
张震伟;马雁云;: "基于超元数据缓存的高速数据访问系统", 广东通信技术, no. 09, pages 32 - 37 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404593A (zh) * | 2020-03-13 | 2020-07-10 | 北京华云星地通科技有限公司 | 卫星遥感数据的处理方法 |
CN111404593B (zh) * | 2020-03-13 | 2022-02-15 | 北京华云星地通科技有限公司 | 卫星遥感数据的处理方法及装置 |
CN111522605A (zh) * | 2020-04-16 | 2020-08-11 | 艾普阳科技(深圳)有限公司 | 一种本地过程调用方法、装置、设备及介质 |
CN111522605B (zh) * | 2020-04-16 | 2022-07-29 | 艾普阳科技(深圳)有限公司 | 一种本地过程调用方法、装置、设备及介质 |
CN112241473A (zh) * | 2020-09-07 | 2021-01-19 | 上海连尚网络科技有限公司 | 一种用于为应用配置数据的方法与设备 |
CN117724852A (zh) * | 2024-02-07 | 2024-03-19 | 微网优联科技(成都)有限公司 | 一种云电脑计算资源分配方法及装置 |
CN117724852B (zh) * | 2024-02-07 | 2024-05-07 | 微网优联科技(成都)有限公司 | 一种云电脑计算资源分配方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110287007A (zh) | 数据调用响应方法、服务器及计算机可读存储介质 | |
CN108427705A (zh) | 电子装置、分布式系统日志查询方法及存储介质 | |
CN108845950A (zh) | 测试装置、测试的方法及存储介质 | |
US20090055468A1 (en) | Selectively delivering cached content or processed content to clients based upon a result completed percentage | |
CN110557284A (zh) | 基于客户端网关的数据聚合方法及装置 | |
CN109951514A (zh) | 基于云存储的文件处理方法、系统及计算机设备 | |
CN111708743A (zh) | 文件存储管理方法、文件管理客户端及文件存储管理系统 | |
CN110737857A (zh) | 一种后端分页加速方法、系统、终端及存储介质 | |
CN112866421B (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
CN108446171A (zh) | 电子装置、分布式系统执行任务分配方法及存储介质 | |
CN107682426A (zh) | 接口代理方法及应用服务器 | |
CN113760976B (zh) | 业务的处理方法、装置、设备及存储介质 | |
CN111324615A (zh) | 数据处理方法、装置、介质及电子设备 | |
CN109495553A (zh) | 一种网页显示控制方法、系统及反向代理服务器 | |
CN112422450A (zh) | 计算机设备、服务请求的流量控制方法及装置 | |
CN110428840A (zh) | 语音识别系统中的负载均衡实现方法、装置以及计算机设备 | |
CN113259429A (zh) | 会话保持管控方法、装置、计算机设备及介质 | |
CN113541987A (zh) | 一种更新配置数据的方法和装置 | |
CN115271861A (zh) | 一种请求过滤方法、装置、设备及存储介质 | |
CN112688980B (zh) | 资源分发方法、装置、计算机设备 | |
CN114385351A (zh) | 云管理平台负载均衡性能优化方法、装置、设备、介质 | |
CN109547552B (zh) | Api请求处理方法、装置、存储介质及电子设备 | |
WO2023103752A1 (zh) | 网元版本下载方法、网元、电子设备和存储介质 | |
CN108769098B (zh) | 一种建立分布式存储系统网络连接的方法、装置及系统 | |
CN112527802B (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 |