CN112069386B - 一种请求处理方法、装置、系统、终端及服务器 - Google Patents
一种请求处理方法、装置、系统、终端及服务器 Download PDFInfo
- Publication number
- CN112069386B CN112069386B CN202010929425.6A CN202010929425A CN112069386B CN 112069386 B CN112069386 B CN 112069386B CN 202010929425 A CN202010929425 A CN 202010929425A CN 112069386 B CN112069386 B CN 112069386B
- Authority
- CN
- China
- Prior art keywords
- request
- url
- response data
- server
- terminal
- 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
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- 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
本发明实施例提供了一种请求处理方法、装置、系统、终端及服务器,所述方法应用于服务器,包括:接收终端发送的服务请求,服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,第二url为下一次请求的url;从缓存中确定第一url对应的响应数据,根据第二url确定并缓存下一次请求的响应数据,第一url对应的响应数据为服务器上一次接收到终端发送的服务请求后缓存的;返回第一url对应的响应数据至终端。由于服务器可以提前对下一次请求的url对应的响应数据进行处理,进而在接收到终端下一次发送的服务请求时,可以直接返回已缓存的响应数据,采用预加载的方式可以大大缩短服务请求的响应时间。
Description
技术领域
本发明涉及请求处理技术领域,特别是涉及一种请求处理方法、装置、系统、终端及服务器。
背景技术
随着移动互联网的成熟,用户可以选择使用的APP(Application,应用程序)种类繁多,对于APP的提供方来说,用户资源是一种很稀缺的资源。为了保证良好的用户体验,对服务请求的响应时间的要求越来越高。
响应时间是指终端向服务器发送一个服务请求后,服务器从收到这个服务请求到处理结束所需要的时间。响应时间越长,用户放弃等待页面展示的可能性就越大,越容易流失用户。因此,如何缩短响应时间,提升服务响应速度是一个重要问题。
服务请求的响应时间的长短取决于某个服务请求的数据处理过程耗时,目前的APP页面往往具有很丰富的页面元素,对于一次服务请求来说,往往需要服务器调用几个、十几个甚至几十个第三方接口或者多次调用缓存及持久化缓存。对于这种服务请求,很难做到迅速的返回数据,响应时间较长,终端的APP界面会因为响应时间长而出现卡顿现象。
发明内容
本发明实施例的目的在于提供一种请求处理方法、装置、系统、终端及服务器,以缩短服务请求的响应时间。具体技术方案如下:
第一方面,本发明实施例提供了一种请求处理方法,应用于服务器,所述方法包括:
接收终端发送的服务请求,其中,所述服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,所述第二url为下一次请求的url;
从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,其中,所述第一url对应的响应数据为所述服务器上一次接收到所述终端发送的服务请求后确定并缓存的;
返回所述第一url对应的响应数据至所述终端。
可选的,所述方法还包括:
接收所述终端发送的预热请求,其中,所述预热请求为所述终端发送当前处理的业务的第一次请求之前发送的,所述预热请求携带请求数据类型;
加载基础连接,并根据所述请求数据类型通过所述基础连接加载并缓存所述终端当前处理的业务相关的响应数据。
可选的,所述响应数据包括实时数据;所述预热请求携带第一时间戳,所述服务请求携带第二时间戳;
所述从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据的步骤,包括:
当所述第一时间戳与所述第二时间戳的差值不大于预设时间差时,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据。
可选的,所述响应数据包括实时数据;
所述从缓存中确定所述第一url对应的响应数据的步骤,包括:
当所述实时数据未超过有效期限时,从缓存中确定所述第一url对应的响应数据。
可选的,所述从缓存中确定所述第一url对应的响应数据的步骤,包括:
确定预先缓存的响应数据所对应的请求标识与所述第一url的请求标识是否相同;
如果相同,从缓存中确定所述第一url对应的响应数据。
可选的,所述确定预先缓存的响应数据所对应的请求标识与所述第一url的请求标识是否相同的步骤,包括:
分别根据目标url的参数以及所述第一url的参数,确定所述预先缓存的响应数据所对应的请求标识以及所述本次请求的请求标识,并确定所述预先缓存的响应数据所对应的请求标识以及所述第一url的请求标识是否相同;其中,所述目标url为所述上一次接收到服务请求携带的url;或,
确定预先缓存的响应数据所对应的请求随机码与所述服务请求所携带所述第一url对应的请求随机码是否相同,其中,所述响应数据所对应的请求随机码为上一次接收到所述终端发送的服务请求后记录的该服务请求携带的第二url对应的随机码。
可选的,所述服务器为从服务器集群中确定的目标服务器;
所述目标服务器的确定方式,包括:
对所述服务请求中的目标字段进行哈希运算,得到哈希结果,其中,所述目标字段为标识所述服务请求来源的字段;
基于预先建立哈希结果与所述服务器集群中的服务器之间的对应关系,确定目标服务器。
可选的,目标请求包括所述服务请求和/或所述预热请求;
所述目标请求的确定方式,包括:
将满足预设条件的请求确定为所述目标请求,其中,所述预设条件包括对应的接口的响应时长达到预设时长阈值、处理逻辑的复杂度达到预设复杂度阈值、请求结果为个性化结果中的至少一种。
第二方面,本发明实施例提供了一种请求处理方法,应用于终端,所述方法包括:
发送服务请求至服务器,以使所述服务器返回预先缓存的第一统一资源定位符url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据,其中,所述服务请求携带所述第一url和所述第二url,所述第一url为本次请求的url;
接收所述服务器返回的所述第一url对应的响应数据。
可选的,所述服务请求为所述终端当前处理的业务的第一次请求;
在所述发送服务请求至服务器的步骤之前,所述方法还包括:
发送预热请求至所述服务器,以使所述服务器加载基础连接,并根据请求数据类型通过所述基础连接加载并缓存所述当前处理的业务相关的响应数据,其中,所述预热请求携带所述请求数据类型。
第三方面,本发明实施例提供了一种请求处理装置,应用于服务器,所述装置包括:
请求接收模块,用于接收终端发送的服务请求,其中,所述服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,所述第二url为下一次请求的url;
数据确定模块,用于从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,其中,所述第一url对应的响应数据为所述服务器上一次接收到所述终端发送的服务请求后确定并缓存的;
数据返回模块,用于返回所述第一url对应的响应数据至所述终端。
第四方面,本发明实施例提供了一种请求处理装置,应用于终端,所述装置包括:
请求发送模块,用于发送服务请求至服务器,以使所述服务器返回预先缓存的第一统一资源定位符url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据,其中,所述服务请求携带所述第一url和所述第二url,所述第一url为本次请求的url,所述第二url为所述下一次请求的url;
数据接收模块,用于接收所述服务器返回的所述第一url对应的响应数据。
第五方面,本发明实施例提供了一种请求处理系统,所述系统包括终端及服务器,其中:
所述终端,用于发送服务请求至所述服务器,其中,所述服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,所述第二url为下一次请求的url;
所述服务器,用于接收所述服务请求,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,返回所述第一url对应的响应数据至所述终端,其中,所述第一url对应的响应数据为所述服务器上一次接收到所述终端发送的服务请求后确定并缓存的;
所述终端,还用于接收所述服务器返回的所述第一url对应的响应数据。
可选的,所述系统还包括网关集群;所述服务器为从服务器集群中确定的目标服务器;
所述终端,具体用于发送服务请求至所述网关集群;
所述网关集群,用于对所述服务请求中的目标字段进行哈希运算,得到哈希结果,基于预先建立哈希结果与所述服务器集群中的服务器之间的对应关系,确定目标服务器,并将所述服务请求转发至所述目标服务器,其中,所述目标字段为标识所述服务请求来源的字段;
所述目标服务器,具体用于接收所述网关集群转发的所述终端发送的服务请求。
第六方面,本发明实施例提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的请求处理方法步骤。
第七方面,本发明实施例提供了一种终端,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第二方面任一所述的请求处理方法步骤。
第八方面,本发明实施例提供了一种计算机可读缓存介质,其特征在于,所述计算机可读缓存介质内缓存有计算机程序,所述计算机程序被处理器执行时上述任一所述的请求处理方法步骤。
第九方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的请求处理方法步骤。
本发明实施例提供的方案中,服务器可以接收终端发送的服务请求,其中,服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,第二url为下一次请求的url,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,其中,响应数据为服务器上一次接收到终端发送的服务请求后确定并缓存的,进而,返回第一url对应的响应数据至终端。由于终端每次发送的服务请求均携带本次请求的url和下一次请求的url,服务器可以提前对下一次请求的url对应的响应数据进行处理,进而在接收到终端下一次发送的服务请求时,可以直接返回已缓存的响应数据,采用预加载的方式可以大大缩短服务请求的响应时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例所提供的第一种请求处理方法的流程图;
图2为基于图1所示实施例的请求处理方法的一种示意图;
图3为基于图1所示实施例的预热请求处理方式的一种流程图;
图4为图3所示实施例中预热请求进行处理方式的一种示意图;
图5为基于图3所示实施例的请求处理方法的另一种示意图;
图6为基于图1所示实施例的目标服务器的确定方式的一种流程图;
图7为基于图6所示实施例的服务请求的转发方式的一种示意图;
图8为本发明实施例所提供的第二种请求处理方法的流程图;
图9为本发明实施例所提供的第一种请求处理装置的结构示意图;
图10为本发明实施例所提供的第二种请求处理装置的结构示意图;
图11为本发明实施例所提供的第一种请求处理系统的结构示意图;
图12为基于图11所示实施例的请求处理系统的另一种结构示意图;
图13为本发明实施例所提供的一种服务器的结构示意图;
图14为本发明实施例所提供的一种终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为了缩短服务请求的响应时间,本发明实施例提供了一种请求处理方法、装置、系统、终端、服务器以及计算机可读存储介质。下面对本发明实施例所提供的一种请求处理方法进行介绍。
本发明实施例所提供的第一种请求处理方法可以应用于服务器,该服务器可以与终端通信连接,以进行数据传输。
如图1所示,一种请求处理方法,应用于服务器,所述方法包括:
S101,接收终端发送的服务请求;
其中,所述服务请求携带第一统一资源定位符url和第二url,所述第一url为本次请求的url,所述第二url为下一次请求的url。
S102,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据;
其中,所述响应数据为所述服务器上一次接收到所述终端发送的服务请求后确定并缓存的。
S103,返回所述第一url对应的响应数据至所述终端。
可见,本发明实施例提供的方案中,服务器可以接收终端发送的服务请求,其中,服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,第二url为下一次请求的url,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,其中,响应数据为服务器上一次接收到终端发送的服务请求后确定并缓存的,进而,返回第一url对应的响应数据至终端。由于终端每次发送的服务请求均携带本次请求的url和下一次请求的url,服务器可以提前对下一次请求的url对应的响应数据进行处理,进而在接收到终端下一次发送的服务请求时,可以直接返回已缓存的响应数据,采用预加载的方式可以大大缩短服务请求的响应时间。
对于一个服务请求来说,服务器会对其进行请求解析、获取依赖资源、数据聚合、组装返回等几个过程。请求解析和组装返回耗时较少,而获取依赖资源和数据聚合耗时较长。因此为了缩短服务请求的响应时间,可以采用预加载的方式对服务请求进行处理,也就是说预先对服务请求进行获取依赖资源和数据聚合的处理,得到响应数据并将其存入缓存中。
具体来说,终端每次发送服务请求时,该服务请求可以携带本次请求的url(uniform resource locator,统一资源定位符)和下一次请求的url,分别称为第一url和第二url。例如,用户当前打开了应用程序A的首页,该首页共包括5个页面,用户可以通过下滑等方式查看各个页面。那么此时终端可以发送服务请求至服务器,该服务请求包括首页的第一个页面的显示请求的url以及第二个页面的显示请求的url。
由于终端在上一次发送服务请求至服务器时,上一次发送的服务请求携带上一次请求的url和本次请求的url,所以服务器在接收到上一次发送的服务请求后可以根据该本次请求的url进行获取依赖资源和数据聚合处理,得到相应的响应数据并缓存。
进而,服务器在接收到本次服务请求后,便可以从缓存中确定第一url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据,也就是执行上述步骤S102。进而可以对预先缓存的本次请求的url对应的响应数据进行组装并返回至终端,不需要在接收到本次服务请求后才对本次服务请求进行处理,响应时间可以大大缩短。终端便可以接收服务器返回的第一url对应的响应数据。进而,显示该响应数据对应的页面等。
例如,如图2所示,终端210可以发送携带请求1和请求2的url的服务请求至服务器220,其中,请求1即为本次的请求,请求2为下一次的请求。服务器220接收到该服务请求后,返回请求1对应的响应数据,并开始对请求2进行获取依赖资源和数据聚合等处理,得到请求2对应的响应数据。进而,在终端下一次发送携带请求2和请求3的url的服务请求至服务器220时,服务器220便可以返回请求2对应的响应数据,并开始对请求3进行获取依赖资源和数据聚合等处理,得到请求3对应的响应数据。
作为本发明实施例的一种实施方式,如图3所示,上述方法还可以包括:
S301,接收所述终端发送的预热请求;
其中,该预热请求为终端发送当前处理的业务的第一次请求之前发送的,预热请求携带请求数据类型。
S302,加载基础连接,并根据所述请求数据类型通过所述基础连接加载并缓存所述终端当前处理的业务相关的响应数据。
在发送当前处理的业务的第一次请求之前,终端可以发送预热请求至服务器,这样,服务器接收到该预热请求后,如图4所示,服务器便可以根据需要加载基础连接,例如,http(hypertext transfer protocol,超文本传输协议)连接、数据库的连接池等。进而通过已加载的基础连接加载一些相关的缓存数据(缓存加载),也就是响应数据。服务器还可以对响应数据进行数据预处理、开辟存储空间以存储响应数据(预加载数据存储)等,以便后续处理服务请求。在一种实施方式中,为了告知预热请求处理完成,服务器可以发送预热成功消息至终端,以便终端继续发送服务请求至服务器。
例如,如图5所示,终端510在发送当前处理的业务的第一次请求之前,可以发送预热请求至服务器,服务器处理完成预热请求后可以发送预热成功消息至终端。进而,终端可以发送携带请求1和请求2的url的服务请求至服务器520,其中,请求1即为本次的请求,请求2为下一次的请求。
服务器520接收到该服务请求后,可以基于处理预热请求时缓存的响应数据,确定并返回请求1对应的响应数据,同时开始对请求2进行获取依赖资源和数据聚合等处理,得到请求2对应的响应数据。进而,在终端510下一次发送携带请求2和请求3的url的服务请求至服务器520时,服务器520便可以返回请求2对应的响应数据,并开始对请求3进行获取依赖资源和数据聚合等处理,得到请求3对应的响应数据。以此类推,直到当前处理的业务结束。
可见,在本实施例中,在发送当前处理的业务的第一次请求至服务器之前,终端可以发送预热请求至服务器,这样,服务器可以加载基础连接,并根据请求数据类型通过基础连接加载并缓存当前处理的业务相关的响应数据,进一步缩短服务请求的响应时间。
作为本发明实施例的一种实施方式,上述响应数据可以包括实时数据。其中,实时数据即为可能实时更新的数据,例如,视频点赞数量、话题转发数量等。由于实时数据具有随时间变化而变化的特点,所以为了确定缓存中的实时数据是否已经过期,终端发送的预热请求可以携带第一时间戳,服务请求可以携带第二时间戳。
相应的,上述从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据的步骤,可以包括:
当所述第一时间戳与所述第二时间戳的差值不大于预设时间差时,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据。
服务器接收到上述预热请求时,可以记录其携带的第一时间戳,在接收到终端发送的第一次请求时,可以计算第一时间戳与该第一次请求携带的第二时间戳之间的差值。
如果该差值大于预设时间差,说明该第一次请求的发送时间与预热请求的发送时间之间间隔的时长比较长,那么预先缓存的实时数据当前很可能已经更新,为了保证返回终端的响应数据的准确性,服务器可以重新加载该第一次请求所对应的响应数据。
如果上述差值不大于预设时间差,说明该第一次请求的发送时间与预热请求的发送时间之间间隔的时长较短,那么预先缓存的实时数据当前已经更新的可能性不大,那么服务器可以从缓存中确定第一url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据,此时,响应数据的准确性可以得到保障。
其中,上述预设时间差可以根据当前处理的业务的实时性要求、实时数据的更新速度等因素确定,在此不做具体限定。
可见,在本实施例中,针对响应数据包括实时数据的情况而言,服务器可以在第一时间戳与第二时间戳的差值不大于预设时间差时,从缓存中确定第一url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据。这样,可以保证实时数据的准确性。
作为本发明实施例的一种实施方式,针对响应数据包括实时数据的情况,上述从缓存中确定所述第一url对应的响应数据的步骤,可以包括:
当所述实时数据未超过有效期限时,从缓存中确定所述第一url对应的响应数据。
服务器在缓存上述实时数据时,可以记录该实时数据的有效期限,其中,有效期限可以为时长,也可以为一个时间点。这样,服务器在接收到服务请求后,可以先确定缓存中的实时数据是否超过有效期限。
如果超过有效期限,说明预先缓存的实时数据当前很可能已经更新,为了保证返回终端的响应数据的准确性,服务器可以重新加载该第一次请求所对应的响应数据。为了进一步缩短响应时间,服务器可以删除超过有效期限的实时数据,以释放缓存资源。
如果缓存中的实时数据未超过有效期限,说明预先缓存的实时数据当前已经更新的可能性不大,那么服务器可以从缓存中确定第一url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据,此时,响应数据的准确性可以得到保障。
可见,在本实施例中,针对响应数据包括实时数据的情况而言,服务器可以在实时数据未超过有效期限时,从缓存中确定第一url对应的响应数据,可以保证实时数据的准确性。
作为本发明实施例的一种实施方式,上述从缓存中确定所述第一url对应的响应数据的步骤,可以包括:
确定预先缓存的响应数据所对应的请求标识与所述第一url的请求标识是否相同;如果相同,从缓存中确定所述第一url对应的响应数据。
为了确定上一次接收到终端发送的服务请求中携带的第二url,与本次接收到的服务请求中携带的本次请求的url是否相同,以保证返回的响应数据的准确性。服务器可以确定预先缓存的响应数据所对应的请求标识与第一url的请求标识是否相同。其中,请求标识为能够唯一标识服务请求的标识,只要能够唯一标识服务请求即可,在此不做具体限定。
如果预先缓存的响应数据所对应的请求标识与第一url的请求标识相同,说明上一次接收到终端发送的服务请求中携带的第二url,与本次接收到的服务请求中携带的本次请求的url相同,那么预先缓存的响应数据即为本次接收到的服务请求中携带的本次请求的url所对应的响应数据,此时,服务器便可以从缓存中确定第一url对应的响应数据。
如果预先缓存的响应数据所对应的请求标识与第一url的请求标识不同,说明上一次接收到终端发送的服务请求中携带的第二url,与本次接收到的服务请求中携带的本次请求的url不同,那么预先缓存的响应数据也就不是本次接收到的服务请求中携带的本次请求的url所对应的响应数据,此时,服务器便可以加载该第一url对应的响应数据,并发送至终端。
可见,在本实施例中,服务器可以确定预先缓存的响应数据所对应的请求标识与第一url的请求标识是否相同,如果相同,则从缓存中确定第一url对应的响应数据,这样,可以保证返回至终端的响应数据的准确性。
作为本发明实施例的一种实施方式,上述确定预先缓存的响应数据所对应的请求标识与所述第一url的请求标识是否相同的步骤,至少可以包括以下两种具体确定方式:
第一种方式:分别根据目标url的参数以及所述第一url的参数,确定所述预先缓存的响应数据所对应的请求标识以及所述本次请求的请求标识,并确定所述预先缓存的响应数据所对应的请求标识以及所述第一url的请求标识是否相同。
其中,所述目标url为上一次接收到服务请求携带的url。由于服务请求的包括一些关键参数,由于这些关键参数具有唯一性,所以可以用于确定请求标识。例如,参数可以为uid(user identification,用户标识)、应用程序中页面页码、频道标识等。
在一种实施方式中,可以对这些参数进行md5(message digest Algorithm,消息摘要算法)运算,将得到的运算结果作为请求标识。
第二种方式:确定预先缓存的响应数据所对应的请求随机码与所述服务请求所携带所述第一url对应的请求随机码是否相同。
其中,响应数据所对应的请求随机码为上一次接收到终端发送的服务请求后缓存的该服务请求携带的第二url对应的随机码。在这种实施方式中,终端在发送每个服务请求时,可以针对服务请求携带的url生成请求随机码,并与服务清气一通=同发送至服务器。请求随机码的生成方式可以为数据处理领域的任意随机码生成方式,在此不做具体限定及说明。
这样,服务器在接收到本次的服务请求时,可以将已记录的上一次接收到终端发送的服务请求后记录的该服务请求携带的第二url对应的随机码与本次服务请求携带的第一url对应的随机码进行比较,确定二者是否相同。同时可以记录本次服务请求所携带的第二url对应的请求随机码,以便在下一次接收到终端发送的服务请求时进行随机码的匹配。
可见,在本实施例中,服务器至少可以采用上述两种方式确定预先缓存的响应数据所对应的请求标识与所述第一url的请求标识是否相同,均可以准确定二者的请求标识是否相同,保证返回至终端的响应数据的准确性。
作为本发明实施例的一种实施方式,上述服务器可以为从服务器集群中确定的目标服务器。由于目前的服务请求多是并发的,所以一般需要配置服务集群来处理服务请求。那么对于一个高并发的服务系统,为了确定由哪一个服务器来处理当前的服务请求,可以在终端与服务集群之间配置网关集群,该网关集群用于根据一定的策略从服务器集群中确定的目标服务器。
在一种实施方式中,如图6所示,上述目标服务器的确定方式,可以包括:
S601,对所述服务请求中的目标字段进行哈希运算,得到哈希结果;
由于采用本发明实施例所提供的请求处理方法,需要保证本次请求与上一次请求被转发至同一个服务器。例如,如7图所示,req_a、req_b、req_c分别对应三组服务请求,每组服务请求包括的两个请求为同一个请求接口对应的本次请求和上一次请求,那么需要将一组的两个请求转发到一个服务器上。也就是说需要将req_a_1和req_a_2转发到一个服务器上;将req_b_1和req_b_2转发到一个服务器上;将req_c_1和req_c_2转发到一个服务器上。
在一种实施方式中,可以找到服务请求的目标字段,由于目标字段为可以标识服务请求来源,所以可以将目标字段和转发方式联系起来,这样同一组请求经过网关集群转发后就会转发至同一个服务器。
可以对服务请求中的目标字段进行哈希运算,得到哈希结果,这样,哈希结果便可以表示服务请求的来源。作为一种实施方式,目标字段可以为各个服务请求中包括的共有的字段,并且能够标识服务请求的来源,所以目标字段可以为服务请求中的uid。由于对于终端来说,每一个用户都有一个唯一的uid,用户是使用同一个APP时发出的服务请求所对应的uid相同,而且uid一般是分布均匀的,所以可以将服务请求中携带的uid作为目标字段。进而,在网关集群可以对uid进行哈希运算,得到哈希结果。
S602,基于预先建立哈希结果与所述服务器集群中的服务器之间的对应关系,确定目标服务器。
为了方便确定各个服务请求对应的目标服务器,可以预先建立哈希结果与服务器集群中的各个服务器之间的对应关系。该对应关系可以如下表所示:
序号 | 哈希结果 | 服务器 |
1 | 哈希结果1 | 服务器a |
2 | 哈希结果2 | 服务器b |
3 | 哈希结果3 | 服务器c |
4 | 哈希结果4 | 服务器d |
5 | 哈希结果5 | 服务器e |
那么在网关集群接收到服务请求,并得到该服务请求对应的哈希结果后,网关集群便可以基于预先建立哈希结果与服务器集群中的服务器之间的对应关系,从服务器集群中确定目标服务器。进而,可以将服务请求转发至该目标服务器。
例如,该服务请求对应的哈希结果为哈希结果4,那么网关集群可以根据上表所记录的对应关系,确定目标服务器为服务器d,进而可以将该服务请求转发至服务器d。
由于网关集群需要进行目标服务器的确定,因此需要更改网关集群的配置,在一种实施方式中,可以将上述确定方式编辑成脚本后写入网关集群的配置。
可见,在本实施例中,网关集群可以对服务请求中的目标字段进行哈希运算,得到哈希结果,进而,基于预先建立哈希结果与服务器集群中的服务器之间的对应关系,确定目标服务器。这样,可以在高并发的服务系统中保证本发明实施例所提供的请求处理方法的顺利进行,缩短服务系统的响应时间。
作为本发明实施例的一种实施方式,目标请求包括上述服务请求和/或预热请求。目标请求的确定方式,可以包括:
将满足预设条件的请求确定为所述目标请求。
其中,所述预设条件包括对应的接口的响应时长达到预设时长阈值、处理逻辑的复杂度达到预设复杂度阈值、请求结果为个性化结果中的至少一种。
由于一些服务请求的响应速度是比较快的,并不需要进行预加载处理和/或预热处理,例如,视频播放请求等。所以可以预先确定需要进行预加载和/或预热的服务请求,以便进行服务请求的处理。
在一种实施方式中,可以将满足预设条件的请求确定为目标请求。其中,预设条件包括以下至少一种:
第一种:对应的接口的响应时长达到预设时长阈值。也就是说,可以根据应用程序的各个接口的响应时长确定是否需要进行预加载处理和/或预热处理,如果某个或某些接口的响应时长较长,达到预设时长阈值,说明该接口无法满足业务方的需求,那么可以确定该接口对应的服务请求需要进行预加载处理和/或预热处理。
第二种:处理逻辑的复杂度达到预设复杂度阈值。也就是说,可以根据服务请求的处理逻辑的复杂度确定是否需要进行预加载处理和/或预热处理,如果某个服务请求的处理逻辑的复杂度较高,达到预设复杂度阈值,说明该服务请求的响应时长可能较长,很可能无法满足业务方的需求,那么可以确定该服务请求需要进行预加载处理和/或预热处理。
第三种:请求结果为个性化结果。也就是说,可以根据服务请求对应的请求结果是否是个性化设置的确定是否需要进行预加载处理和/或预热处理,如果某个服务请求的请求结果是个性化设置,说明该服务请求的响应时长要求可能较短,或者处理逻辑的复杂度可能较高,那么可以确定该服务请求需要进行预加载处理和/或预热处理。
可见,在本实施例中,可以预先根据对应的接口的响应时长达到预设时长阈值、处理逻辑的复杂度达到预设复杂度阈值、请求结果为个性化结果中的至少一种确定哪个或者哪些服务请需要进行预加载处理和/或预热处理,这样可以满足各个不同的服务请求的处理需要。
相应于上述第一种请求处理方法,本发明实施例还提供了第二种请求处理方法。下面对本发明实施例所提供的第二种请求处理方法进行介绍。本发明实施例所提供的第二种请求处理方法可以应用于终端,该终端可以与上述服务器通信连接,以进行数据传输。该终端可以为手机、电脑、平板电脑等电子设备,在此不做具体限定。
如图8所示,一种请求处理方法,应用于终端,所述方法包括:
S801,发送服务请求至服务器,以使所述服务器返回预先缓存的第一统一资源定位符url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据;
其中,所述服务请求携带所述第一url和所述第二url,所述第一url为所述本次请求的url,所述第二url为所述下一次请求的url。
S802,接收所述服务器返回的所述第一url对应的响应数据。
可见,本发明实施例提供的方案中,终端可以发送服务请求至服务器,服务器可以返回预先缓存的第一统一资源定位符url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据,其中,服务请求携带第一url和第二url,第一url为本次请求的url,第二url为下一次请求的url,进而终端可以接收服务器返回的所述第一url对应的响应数据。由于终端每次发送的服务请求均携带本次请求的url和下一次请求的url,服务器可以提前对下一次请求的url对应的响应数据进行处理,进而在接收到终端下一次发送的服务请求时,可以直接返回已缓存的响应数据,采用预加载的方式可以大大缩短服务请求的响应时间。
终端每次发送服务请求时,该服务请求可以携带本次请求的url和下一次请求的url,分别称为第一url和第二url。由于终端在上一次发送服务请求至服务器时,上一次发送的服务请求携带上一次请求的url和本次请求的url,所以服务器在接收到上一次发送的服务请求后可以根据该本次请求的url进行获取依赖资源和数据聚合处理,得到相应的响应数据并缓存。这样,服务器在接收到本次服务请求后,便可以从缓存中确定第一url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据。
进而,服务器可以返回预先缓存的本次请求的url对应的响应数据,并不需要在接收到本次服务请求后才对本次服务请求进行处理,响应时间可以大大缩短。在上述步骤S802中,终端可以接收到服务器返回的第一url对应的响应数据。
作为本发明实施例的一种实施方式,在上述发送服务请求至服务器的步骤之前,所述方法还可以包括:
确定服务请求是否为预先确定的需要进行预加载的服务请求,如果是,执行所述发送服务请求至服务器的步骤;如果否,发送目标服务请求至服务器,其中,目标服务请求只携带本次请求的url。
终端在发送服务请求服务器之前,可以确定该服务请求是否为预先确定的需要进行预加载的服务请求,如果是,那么便执行上述步骤S801-步骤S802,以采用预加载的方式对服务请求进行处理。
如果该服务请求不为预先确定的需要进行预加载的服务请求,那么说明该服务请求对应的响应时间一般是比较短的,所以可以发送只携带本次请求的url的目标服务请求至服务器,采用常规处理方式对该目标服务请求进行处理。
可见,在本实施例中,终端在发送服务请求服务器之前,可以确定服务请求是否为预先确定的需要进行预加载的服务请求,如果是,发送服务请求至服务器;如果否,发送只携带本次请求的url的目标服务请求至服务器。这样可以根据服务请求的实际响应时间,针对不同服务请求合理地采用预加载的处理方式,可以对各种服务请求进行合理处理,缩短响应时间。
作为本发明实施例的一种实施方式,在上述接收所述服务器返回的所述第一url对应的响应数据的步骤之后,上述方法还可以包括:
返回所述发送服务请求至服务器,以使所述服务器返回预先缓存的第一统一资源定位符url对应的响应数据,并根据第二url确定并缓存下次请求的响应数据的步骤,直到所述终端当前处理的业务结束。
为了进一步缩短终端当前处理的业务的总体响应时间,终端可以返回发送服务请求至服务器,以使服务器返回预先缓存的第一统一资源定位符url对应的响应数据,并根据第二url确定并缓存下次请求的响应数据的步骤,直到终端当前处理的业务结束。也就是说,终端可以采用上述预加载的处理方式对每个服务请求进行处理,每次发送服务请求至服务器,该服务请求均可以携带本次请求的url和下一次请求的url,直到当前处理的业务结束。
可见,在本实施例中,终端可以采用上述预加载的处理方式对每个服务请求进行处理,直到当前处理的业务结束,这样可以缩短终端当前处理的业务的总体响应时间。
作为本发明实施例的一种实施方式,上述服务请求可能为终端当前处理的业务的第一次请求。例如,上述服务请求为打开应用程序的推荐页,在其之前没有其他服务请求,那么打开应用程序的推荐页的请求即为当前处理的业务的第一次请求。
由于对于第一次请求来说,不存在上一次请求,服务器不能在上一次请求时缓存该第一次请求的响应数据,所以为了进一步缩短服务请求的响应时间,在这种情况下,在上述发送服务请求至服务器的步骤之前,上述方法还可以包括:
发送预热请求至所述服务器,以使所述服务器加载基础连接,并根据请求数据类型通过所述基础连接加载并缓存所述当前处理的业务相关的响应数据。
其中,该预热请求携带请求数据类型,请求数据类型即为需要向服务器请求的数据的类型。请求数据类型可以根据终端所要显示的页面内容确定。例如,当前处理的业务为短视频推荐业务,那么请求数据类型可以包括视频等。
这样,服务器接收到该预热请求后,便可以根据需要加载基础连接,进而通过已加载的基础连接加载一些相关的缓存数据,也就是响应数据。服务器还可以对响应数据进行预处理、开辟存储空间以存储响应数据等。服务器便可以基于已建立的基础连接以及已存储的响应数据处理后续服务请求,进一步缩短服务请求的响应时间。
可见,在本实施例中,针对服务请求为终端当前处理的业务的第一次请求的情况,在发送服务请求至服务器之前,终端可以发送预热请求至服务器,以使服务器加载基础连接,并根据请求数据类型通过基础连接加载并缓存当前处理的业务相关的响应数据,进一步缩短服务请求的响应时间。
相应于上述第一种请求处理方法,本发明实施例提供了第一种请求处理装置,下面对本发明实施例所提供的第一种请求处理装置进行介绍。
如图9所示,一种请求处理装置,应用于服务器,所述装置包括:
请求接收模块910,用于接收终端发送的服务请求;
其中,所述服务请求携带第一统一资源定位符url和第二url,所述第一url为本次请求的url,所述第二url为下一次请求的url。
数据确定模块920,用于从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据;
其中,所述第一url对应的响应数据为所述服务器上一次接收到所述终端发送的服务请求后确定并缓存的。
数据返回模块930,用于返回所述第一url对应的响应数据至所述终端。
可见,本发明实施例提供的方案中,服务器可以接收终端发送的服务请求,其中,服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,第二url为下一次请求的url,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,其中,响应数据为服务器上一次接收到终端发送的服务请求后确定并缓存的,进而,返回第一url对应的响应数据至终端。由于终端每次发送的服务请求均携带本次请求的url和下一次请求的url,服务器可以提前对下一次请求的url对应的响应数据进行处理,进而在接收到终端下一次发送的服务请求时,可以直接返回已缓存的响应数据,采用预加载的方式可以大大缩短服务请求的响应时间。
作为本发明实施例的一种实施方式,所述装置还包括:
预热请求接收模块,用于接收所述终端发送的预热请求;
其中,所述预热请求为所述终端发送当前处理的业务的第一次请求之前发送的,所述预热请求携带请求数据类型。
响应数据加载模块,用于加载基础连接,并根据所述请求数据类型通过所述基础连接加载并缓存所述终端当前处理的业务相关的响应数据。
作为本发明实施例的一种实施方式,所述响应数据包括实时数据;所述预热请求携带第一时间戳,所述服务请求携带第二时间戳;
所述数据确定模块920包括:
第一数据确定单元,用于当所述第一时间戳与所述第二时间戳的差值不大于预设时间差时,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据。
作为本发明实施例的一种实施方式,所述响应数据包括实时数据;
所述数据确定模块920包括:
第二数据确定单元,用于当所述实时数据未超过有效期限时,从缓存中确定所述第一url对应的响应数据。
作为本发明实施例的一种实施方式,所述数据确定模块920包括:
请求标识确定单元,用于确定预先缓存的响应数据所对应的请求标识与所述第一url的请求标识是否相同;
第三数据确定单元,用于如果预先缓存的响应数据所对应的请求标识与所述第一url的请求标识相同,从缓存中确定所述第一url对应的响应数据。
作为本发明实施例的一种实施方式,所述请求标识确定单元包括:
请求标识确定子单元,用于分别根据目标url的参数以及所述第一url的参数,确定所述预先缓存的响应数据所对应的请求标识以及所述本次请求的请求标识,并确定所述预先缓存的响应数据所对应的请求标识以及所述第一url的请求标识是否相同;
其中,所述目标url为所述上一次接收到服务请求携带的url。或,
用于确定预先缓存的响应数据所对应的请求随机码与所述服务请求所携带所述第一url对应的请求随机码是否相同。
其中,所述响应数据所对应的请求随机码为上一次接收到所述终端发送的服务请求后记录的该服务请求携带的第二url对应的随机码。
作为本发明实施例的一种实施方式,所述服务器为从服务器集群中确定的目标服务器;
所述目标服务器的确定方式,包括:
对所述服务请求中的目标字段进行哈希运算,得到哈希结果;
其中,所述目标字段为标识所述服务请求来源的字段。
基于预先建立哈希结果与所述服务器集群中的服务器之间的对应关系,确定目标服务器。
作为本发明实施例的一种实施方式,目标请求包括所述服务请求和/或所述预热请求;
所述目标请求的确定方式,可以包括:
将满足预设条件的请求确定为所述目标请求,其中,所述预设条件包括对应的接口的响应时长达到预设时长阈值、处理逻辑的复杂度达到预设复杂度阈值、请求结果为个性化结果中的至少一种。
相应于上述第二种请求处理方法,本发明实施例提供了第二种请求处理装置,下面对本发明实施例所提供的第二种请求处理装置进行介绍。
如图10所示,一种请求处理装置,应用于终端,所述装置包括:
请求发送模块1010,用于发送服务请求至服务器,以使所述服务器返回预先缓存的第一统一资源定位符url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据;
其中,所述服务请求携带所述第一url和所述第二url,所述第一url为所述本次请求的url,所述第二url为所述下一次请求的url。
数据接收模块1020,用于接收所述服务器返回的所述第一url对应的响应数据。
可见,本发明实施例提供的方案中,终端可以发送服务请求至服务器,服务器可以返回预先缓存的第一统一资源定位符url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据,其中,服务请求携带第一url和第二url,第一url为本次请求的url,第二url为下一次请求的url,进而终端可以接收服务器返回的所述第一url对应的响应数据。由于终端每次发送的服务请求均携带本次请求的url和下一次请求的url,服务器可以提前对下一次请求的url对应的响应数据进行处理,进而在接收到终端下一次发送的服务请求时,可以直接返回已缓存的响应数据,采用预加载的方式可以大大缩短服务请求的响应时间。
作为本发明实施例的一种实施方式,所述服务请求为所述终端当前处理的业务的第一次请求;
所述装置还包括:
预热请求发送模块,用于在所述发送服务请求至服务器之前,发送预热请求至所述服务器,以使所述服务器加载基础连接,并根据请求数据类型通过所述基础连接加载并缓存所述当前处理的业务相关的响应数据。
其中,所述预热请求携带所述请求数据类型。
相应于上述请求处理方法,本发明实施例还提供的一种请求处理系统。如图11所示,一种请求处理系统,所述系统包括终端1110及服务器1120,其中:
所述终端1110,用于发送服务请求至所述服务器;
其中,所述服务请求携带第一统一资源定位符url和第二url,所述第一url为本次请求的url,所述第二url为下一次请求的url。
所述服务器1120,用于接收所述服务请求,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,返回所述第一url对应的响应数据至所述终端1110;
其中,所述第一url对应的响应数据为所述服务器上一次接收到所述终端发送的服务请求后确定并缓存的。
所述终端1110,还用于接收所述服务器1120返回的所述第一url对应的响应数据。
可见,本发明实施例提供的方案中,服务器可以接收终端发送的服务请求,其中,服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,第二url为下一次请求的url,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,其中,响应数据为服务器上一次接收到终端发送的服务请求后确定并缓存的,进而,返回第一url对应的响应数据至终端。由于终端每次发送的服务请求均携带本次请求的url和下一次请求的url,服务器可以提前对下一次请求的url对应的响应数据进行处理,进而在接收到终端下一次发送的服务请求时,可以直接返回已缓存的响应数据,采用预加载的方式可以大大缩短服务请求的响应时间。
作为本发明实施例的一种实施方式,所述终端1110,还用于在所述接收所述服务器返回的所述第一url对应的响应数据之后,返回所述发送服务请求至服务器,以使所述服务器返回预先缓存的第一统一资源定位符url对应的响应数据,并根据第二url确定并缓存下次请求的响应数据的步骤,直到所述终端当前处理的业务结束。
作为本发明实施例的一种实施方式,所述服务请求为所述终端当前处理的业务的第一次请求;
所述终端,还用于在所述发送服务请求至服务器之前,发送预热请求至所述服务器1120;其中,所述预热请求携带所述请求数据类型。
所述服务器1120,还用于接收所述终端发送的预热请求,加载基础连接,并根据所述请求数据类型通过所述基础连接加载并缓存所述终端当前处理的业务相关的响应数据。
作为本发明实施例的一种实施方式,所述响应数据包括实时数据;所述预热请求携带第一时间戳,所述服务请求携带第二时间戳;
所述服务器1120,具体用于当所述第一时间戳与所述第二时间戳的差值不大于预设时间差时,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据。
作为本发明实施例的一种实施方式,所述响应数据包括实时数据;
所述服务器1120,具体用于当所述实时数据未超过有效期限时,从缓存中确定所述第一url对应的响应数据。
作为本发明实施例的一种实施方式,所述服务器1120,具体用于确定预先缓存的响应数据所对应的请求标识与所述第一url的请求标识是否相同;如果相同,从缓存中确定所述第一url对应的响应数据。
作为本发明实施例的一种实施方式,所述服务器1120,具体用于分别根据目标url的参数以及所述第一url的参数,确定所述预先缓存的响应数据所对应的请求标识以及所述本次请求的请求标识,并确定所述预先缓存的响应数据所对应的请求标识以及所述第一url的请求标识是否相同;其中,所述目标url为所述上一次接收到服务请求携带的url;或,
具体用于确定预先缓存的响应数据所对应的请求随机码与所述服务请求所携带所述第一url对应的请求随机码是否相同,其中,所述响应数据所对应的请求随机码为上一次接收到所述终端发送的服务请求后记录的该服务请求携带的第二url对应的随机码。
作为本发明实施例的一种实施方式,如图12所示,所述系统还包括网关集群1130;所述服务器1120为从服务器集群1140中确定的目标服务器;
所述终端1110,具体用于发送服务请求至所述网关集群1130;
所述网关集群1130,用于对所述服务请求中的目标字段进行哈希运算,得到哈希结果,基于预先建立哈希结果与所述服务器集群1140中的服务器之间的对应关系,确定目标服务器,并将所述服务请求转发至所述目标服务器,其中,所述目标字段为标识所述服务请求来源的字段;
所述目标服务器,具体用于接收所述网关集群1130转发的所述终端1110发送的服务请求。
本发明实施例还提供了一种服务器,如图13所示,包括处理器1301、通信接口1302、存储器1303和通信总线1304,其中,处理器1301,通信接口1302,存储器1303通过通信总线1304完成相互间的通信,
存储器1303,用于存放计算机程序;
处理器1301,用于执行存储器1303上所存放的程序时,实现上述任一实施例所述的第一种请求处理方法步骤。
上述服务器提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的缓存装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种终端,如图14所示,包括处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信,
存储器1403,用于存放计算机程序;
处理器1401,用于执行存储器1403上所存放的程序时,实现上述任一实施例所述的第二种请求处理方法步骤。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的缓存装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读缓存介质,该计算机可读缓存介质中缓存有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的请求处理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的请求处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以缓存在计算机可读缓存介质中,或者从一个计算机可读缓存介质向另一个计算机可读缓存介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读缓存介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据缓存设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统、终端、服务器、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (14)
1.一种请求处理方法,其特征在于,应用于服务器,所述方法包括:
接收终端发送的服务请求,其中,所述服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,所述第二url为下一次请求的url;
从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,其中,所述第一url对应的响应数据为所述服务器上一次接收到所述终端发送的服务请求后确定并缓存的;
返回所述第一url对应的响应数据至所述终端;
所述方法还包括:
接收所述终端发送的预热请求,其中,所述预热请求为所述终端发送当前处理的业务的第一次请求之前发送的,所述预热请求携带请求数据类型;
加载基础连接,并根据所述请求数据类型通过所述基础连接加载并缓存所述终端当前处理的业务相关的响应数据;
所述响应数据包括实时数据;所述预热请求携带第一时间戳,所述服务请求携带第二时间戳;所述从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据的步骤,包括:
当所述第一时间戳与所述第二时间戳的差值不大于预设时间差时,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据。
2.如权利要求1所述的方法,其特征在于,所述响应数据包括实时数据;
所述从缓存中确定所述第一url对应的响应数据的步骤,包括:
当所述实时数据未超过有效期限时,从缓存中确定所述第一url对应的响应数据。
3.如权利要求1所述的方法,其特征在于,所述从缓存中确定所述第一url对应的响应数据的步骤,包括:
确定预先缓存的响应数据所对应的请求标识与所述第一url的请求标识是否相同;
如果相同,从缓存中确定所述第一url对应的响应数据。
4.如权利要求3所述的方法,其特征在于,所述确定预先缓存的响应数据所对应的请求标识与所述第一url的请求标识是否相同的步骤,包括:
分别根据目标url的参数以及所述第一url的参数,确定所述预先缓存的响应数据所对应的请求标识以及所述本次请求的请求标识,并确定所述预先缓存的响应数据所对应的请求标识以及所述第一url的请求标识是否相同;其中,所述目标url为所述上一次接收到服务请求携带的url;或,
确定预先缓存的响应数据所对应的请求随机码与所述服务请求所携带所述第一url对应的请求随机码是否相同,其中,所述响应数据所对应的请求随机码为上一次接收到所述终端发送的服务请求后记录的该服务请求携带的第二url对应的随机码。
5.如权利要求1-4任一项所述的方法,其特征在于,所述服务器为从服务器集群中确定的目标服务器;
所述目标服务器的确定方式,包括:
对所述服务请求中的目标字段进行哈希运算,得到哈希结果,其中,所述目标字段为标识所述服务请求来源的字段;
基于预先建立哈希结果与所述服务器集群中的服务器之间的对应关系,确定目标服务器。
6.如权利要求1所述的方法,其特征在于,目标请求包括所述服务请求和/或所述预热请求;
所述目标请求的确定方式,包括:
将满足预设条件的请求确定为所述目标请求,其中,所述预设条件包括对应的接口的响应时长达到预设时长阈值、处理逻辑的复杂度达到预设复杂度阈值、请求结果为个性化结果中的至少一种。
7.一种请求处理方法,其特征在于,应用于终端,所述方法包括:
发送服务请求至服务器,以使所述服务器返回预先缓存的第一url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据,其中,所述服务请求携带所述第一url和所述第二url,所述第一url为本次请求的url,所述第二url为所述下一次请求的url;
接收所述服务器返回的所述第一url对应的响应数据;
所述服务请求为所述终端当前处理的业务的第一次请求;在所述发送服务请求至服务器的步骤之前,所述方法还包括:
发送预热请求至所述服务器,以使所述服务器加载基础连接,并根据请求数据类型缓存所述当前处理的业务相关的响应数据,其中,所述预热请求携带所述请求数据类型;
其中,所述响应数据包括实时数据;所述预热请求携带第一时间戳,所述服务请求携带第二时间戳;所述服务器根据第二url确定并缓存下一次请求的响应数据的方式,包括:
当所述第一时间戳与所述第二时间戳的差值不大于预设时间差时,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据。
8.一种请求处理装置,其特征在于,应用于服务器,所述装置包括:
请求接收模块,用于接收终端发送的服务请求,其中,所述服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,所述第二url为下一次请求的url;
数据确定模块,用于从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,其中,所述第一url对应的响应数据为所述服务器上一次接收到所述终端发送的服务请求后确定并缓存的;
数据返回模块,用于返回所述第一url对应的响应数据至所述终端;
预热请求接收模块,用于接收所述终端发送的预热请求;其中,所述预热请求为所述终端发送当前处理的业务的第一次请求之前发送的,所述预热请求携带请求数据类型;
响应数据加载模块,用于加载基础连接,并根据所述请求数据类型通过所述基础连接加载并缓存所述终端当前处理的业务相关的响应数据;
所述响应数据包括实时数据;所述预热请求携带第一时间戳,所述服务请求携带第二时间戳;所述数据确定模块包括:
第一数据确定单元,用于当所述第一时间戳与所述第二时间戳的差值不大于预设时间差时,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据。
9.一种请求处理装置,其特征在于,应用于终端,所述装置包括:
请求发送模块,用于发送服务请求至服务器,以使所述服务器返回预先缓存的第一统一资源定位符url对应的响应数据,并根据第二url确定并缓存下一次请求的响应数据,其中,所述服务请求携带第一url和所述第二url,所述第一url为本次请求的url,所述第二url为所述下一次请求的url;
数据接收模块,用于接收所述服务器返回的所述第一url对应的响应数据;
预热请求发送模块,用于在所述发送服务请求至服务器之前,发送预热请求至所述服务器,以使所述服务器加载基础连接,并根据请求数据类型通过所述基础连接加载并缓存当前处理的业务相关的响应数据;其中,所述预热请求携带所述请求数据类型
其中,所述响应数据包括实时数据;所述预热请求携带第一时间戳,所述服务请求携带第二时间戳;所述服务器根据第二url确定并缓存下一次请求的响应数据的方式,包括:
当所述第一时间戳与所述第二时间戳的差值不大于预设时间差时,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据。
10.一种请求处理系统,其特征在于,所述系统包括终端及服务器,其中:
所述终端,用于发送预热请求和服务请求至所述服务器,其中,所述预热请求携带所述请求数据类型,所述服务请求携带第一统一资源定位符url和第二url,第一url为本次请求的url,所述第二url为下一次请求的url,所述服务请求为所述终端当前处理的业务的第一次请求;所述预热请求是在所述服务请求之前发送的;
所述服务器,用于在接收到所述预热请求,加载基础连接,并根据所述请求数据类型通过所述基础连接加载并缓存所述终端当前处理的业务相关的响应数据;以及在接收到所述服务请求,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据,返回所述第一url对应的响应数据至所述终端,其中,所述第一url对应的响应数据为所述服务器上一次接收到所述终端发送的服务请求后确定并缓存的;
所述终端,还用于接收所述服务器返回的所述第一url对应的响应数据;
其中,所述响应数据包括实时数据;所述预热请求携带第一时间戳,所述服务请求携带第二时间戳;所述从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据的步骤,包括:
当所述第一时间戳与所述第二时间戳的差值不大于预设时间差时,从缓存中确定所述第一url对应的响应数据,并根据所述第二url确定并缓存下一次请求的响应数据。
11.如权利要求10所述的系统,其特征在于,所述系统还包括网关集群;所述服务器为从服务器集群中确定的目标服务器;
所述终端,具体用于发送服务请求至所述网关集群;
所述网关集群,用于对所述服务请求中的目标字段进行哈希运算,得到哈希结果,基于预先建立哈希结果与所述服务器集群中的服务器之间的对应关系,确定目标服务器,并将所述服务请求转发至所述目标服务器,其中,所述目标字段为标识所述服务请求来源的字段;
所述目标服务器,具体用于接收所述网关集群转发的所述终端发送的服务请求。
12.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
13.一种终端,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求7所述的方法步骤。
14.一种计算机可读缓存介质,其特征在于,所述计算机可读缓存介质内缓存有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤或权利要求7所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010929425.6A CN112069386B (zh) | 2020-09-07 | 2020-09-07 | 一种请求处理方法、装置、系统、终端及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010929425.6A CN112069386B (zh) | 2020-09-07 | 2020-09-07 | 一种请求处理方法、装置、系统、终端及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069386A CN112069386A (zh) | 2020-12-11 |
CN112069386B true CN112069386B (zh) | 2023-09-05 |
Family
ID=73663878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010929425.6A Active CN112069386B (zh) | 2020-09-07 | 2020-09-07 | 一种请求处理方法、装置、系统、终端及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069386B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113905099B (zh) * | 2021-09-26 | 2023-12-19 | 北京达佳互联信息技术有限公司 | 上报请求的控制方法、装置、服务器、终端及存储介质 |
CN114138357A (zh) * | 2021-10-29 | 2022-03-04 | 北京达佳互联信息技术有限公司 | 一种请求处理方法、装置、电子设备、存储介质及产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6925485B1 (en) * | 2002-05-24 | 2005-08-02 | Sun Microsystems, Inc. | Proxy cache preloader |
US8332469B1 (en) * | 2010-10-06 | 2012-12-11 | Google Inc. | Web resource caching |
CN105512254A (zh) * | 2015-12-01 | 2016-04-20 | 上海携程商务有限公司 | 终端、网页信息预加载方法及系统 |
CN106446075A (zh) * | 2016-09-07 | 2017-02-22 | 广州华多网络科技有限公司 | 页面请求处理方法及装置 |
CN107609184A (zh) * | 2017-09-30 | 2018-01-19 | 北京奇虎科技有限公司 | 基于网页浏览行为的数据加载方法及装置 |
WO2018023966A1 (zh) * | 2016-08-03 | 2018-02-08 | 华为技术有限公司 | 一种缓存策略的确定方法及装置 |
CN110334297A (zh) * | 2018-03-08 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 终端页面的加载方法、终端、服务器及存储介质 |
CN110995811A (zh) * | 2019-11-25 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 一种数据更新方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9436777B2 (en) * | 2009-08-13 | 2016-09-06 | Yahoo! Inc. | Method and system for causing a browser to preload web page components |
-
2020
- 2020-09-07 CN CN202010929425.6A patent/CN112069386B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6925485B1 (en) * | 2002-05-24 | 2005-08-02 | Sun Microsystems, Inc. | Proxy cache preloader |
US8332469B1 (en) * | 2010-10-06 | 2012-12-11 | Google Inc. | Web resource caching |
CN105512254A (zh) * | 2015-12-01 | 2016-04-20 | 上海携程商务有限公司 | 终端、网页信息预加载方法及系统 |
WO2018023966A1 (zh) * | 2016-08-03 | 2018-02-08 | 华为技术有限公司 | 一种缓存策略的确定方法及装置 |
CN106446075A (zh) * | 2016-09-07 | 2017-02-22 | 广州华多网络科技有限公司 | 页面请求处理方法及装置 |
CN107609184A (zh) * | 2017-09-30 | 2018-01-19 | 北京奇虎科技有限公司 | 基于网页浏览行为的数据加载方法及装置 |
CN110334297A (zh) * | 2018-03-08 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 终端页面的加载方法、终端、服务器及存储介质 |
CN110995811A (zh) * | 2019-11-25 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 一种数据更新方法及装置 |
Non-Patent Citations (1)
Title |
---|
浏览器缓存污染防御策略;戴成瑞;陈伟;;计算机应用(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112069386A (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9888089B2 (en) | Client side cache management | |
US9055124B1 (en) | Enhanced caching of network content | |
CN101164066B (zh) | 对可由具有不同特性的客户终端查阅的服务器高速缓存的管理进行优化的方法 | |
CN107025234B (zh) | 一种信息推送方法及缓存服务器 | |
US9390200B2 (en) | Local caching device, system and method for providing content caching service | |
CN112087644B (zh) | 拉流请求处理方法、装置、系统、电子设备和存储介质 | |
US10909104B2 (en) | Caching of updated network content portions | |
US9906595B2 (en) | Content source discovery | |
EP2503759A1 (en) | Method, apparatus and cache system for providing file downloading service | |
US20070288469A1 (en) | System and method for mixed mode delivery of dynamic content to a mobile device | |
CN110830564B (zh) | Cdn调度方法、装置、系统及计算机可读存储介质 | |
US20140019577A1 (en) | Intelligent edge caching | |
EP3156911A1 (en) | Content management | |
RU2630380C2 (ru) | Система и способ пуша (push) рекламы, основанные на домашнем шлюзе | |
CN110830565B (zh) | 资源下载方法、装置、系统、电子设备及存储介质 | |
CN112069386B (zh) | 一种请求处理方法、装置、系统、终端及服务器 | |
CN102387172A (zh) | 用于为移动设备提供或获取网络资源的内容的方法和装置 | |
US8539104B2 (en) | System and method for mixed mode delivery of dynamic content to a mobile device | |
CN110099292B (zh) | 一种数据中心节点确定方法、装置及电子设备 | |
EP1868350A1 (en) | System and method for mixed mode delivery of dynamic content to a mobile device | |
US10021207B1 (en) | Architecture for proactively providing bundled content items to client devices | |
US20100178914A1 (en) | System and method of delivering content from a wireless communication unit | |
US8224890B1 (en) | Reusing data in content files | |
KR101999719B1 (ko) | 컨텐츠 관리장치 및 방법 | |
CN113612676B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |