CN110769020B - 一种资源请求处理方法、装置、设备及系统 - Google Patents
一种资源请求处理方法、装置、设备及系统 Download PDFInfo
- Publication number
- CN110769020B CN110769020B CN201810850560.4A CN201810850560A CN110769020B CN 110769020 B CN110769020 B CN 110769020B CN 201810850560 A CN201810850560 A CN 201810850560A CN 110769020 B CN110769020 B CN 110769020B
- Authority
- CN
- China
- Prior art keywords
- resource request
- resource
- server
- proxy server
- request
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种资源请求处理方法、装置、设备及系统。该方法包括:第一代理服务器接收来自于存储服务器的第一资源请求,并基于该第一资源请求所请求获取的资源,确定处理该第一资源请求的代理服务器;若确定的代理服务器并非第一代理服务器,则将该第一资源请求转发给所确定的服务器,以便所确定的代理服务器处理该第一资源请求。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种资源请求处理方法、装置、设备及系统。
背景技术
存储服务器用于为用户提供数据读写服务。其数据读写过程包括:
响应用户的申请,为用户分配存储空间Bucket,以基于该Bucket为用户提供数据读写服务;若用户请求访问的资源不存在时,则发起从源服务器提取该资源的资源请求。
而当短时间内有大量资源请求时,会对存储服务器及源服务器造成流量冲击。
因此,需要提供一种可靠的资源请求处理方案。
发明内容
本说明书实施例提供一种资源请求处理方法,用于将来自于存储服务器的资源请求中的等效资源请求转发由同一代理服务器处理。
第一方面,本说明书实施例提供一种回源请处理方法,所述方法包括:
在第一代理服务器处接收来自于存储服务器的第一资源请求,所述第一资源请求向源服务器请求获取资源;
基于所述第一资源请求所请求获取的资源,确定处理所述第一资源请求的代理服务器;
如果所确定的代理服务器并非所述第一代理服务器,则将所述第一资源请求转发至所确定的代理服务器,以便所确定的代理服务器对所述第一资源请求进行处理;如果所确定的代理服务器是所述第一代理服务器,则处理所述第一资源请求。
第二方面,本说明书实施例还提供一种资源请求处理装置,包括:
第一接收模块,用于在第一代理服务器处接收来自于存储服务器的第一资源请求,所述第一资源请求请求向源服务器请求获取资源;
确定模块,用于基于所述第一资源请求所请求获取的资源,确定处理所述第一资源请求的代理服务器;
第一处理模块,用于如果所确定的代理服务器并非所述第一代理服务器,则将所述第一资源请求转发至所确定的代理服务器,以便所确定的代理服务器对所述第一资源请求进行处理;如果所确定的代理服务器是所述第一代理服务器,则处理所述第一资源请求。
第三方面,本说明书实施例还提供一种资源请求处理系统,包括:多个存储服务器和多个代理服务器,其中:
所述存储服务器适于向各个代理服务器发送第一资源请求,所述第一资源请求向源服务器请求获取资源;
所述代理服务器包括第二方面的资源请求处理装置。
第四方面,本说明书实施例还提供一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如第一方面所述的资源请求处理方法。
第五方面,本说明书实施例还提供算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行如第一方面所述的资源请求处理方法。
本说明书实施例通过基于资源请求所请求获取的资源,确定处理该资源请求的代理服务器,并将该资源请求交由该代理服务器处理,以通过多个代理服务器之间的交互,将落到不同代理服务器上的等效资源请求转发由同一代理服务器上,以保证等效资源请求由同一代理服务器处理。与现有技术相比,能有效降低大量等效资源请求的流量放大及其对存储服务器和源服务器的冲击;而且,由于是在代理服务器组内部进行的资源请求转发策略,不涉及其他组件,耦合度极低;进一步地,由于虚拟服务器仅负责来自存储服务器的资源请求的转发,实际的分发任务则是由代理服务器二次决策并完成,因此能够降低通用组件虚拟服务器的复杂度,增加业务逻辑的定制灵活性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书一实施例提供的一种应用场景的结构示意图;
图2a和图2b为本说明书一实施例提供的应用场景的流程示意图;
图3为本说明书一实施例提供的一种资源请求处理方法的流程示意图;
图4为本说明书一实施例提供的合并等效资源请求步骤的第一种实现方式的流程示意图;
图5a和图5b为本说明书另一实施例提供的一种资源请求处理方法的流程示意图;
图6为本说明书一实施例提供的一种资源请求处理装置的结构示意图;
图7为本说明书一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
结合背景技术部分陈述的和图1,存储服务器可以为基于对象存储(ObjectStorage Service,OSS)平台为用户提供的OSS服务器,其数据存储过程可以示例为:
客户端110向OSS服务器120发送存储空间分配请求,以使OSS服务器120为该客户端110分配存储空间Bucket,以供客户端110进行数据存储;在完成数据存储后,若客户端110需要读取存储空间Bucket中的某一资源时,向OSS服务器120发送数据读取请求;OSS服务器120查找该客户端110的Bucket中是否存有该资源,若是,则将该资源返回给客户端,若否,则发起资源请求,以由代理服务器140从源服务器130拉取该资源,并返回给客户端110。
其中,数据读取请求包括读取完整资源的请求和读取资源片段的请求(即,分段请求)。对于前者,OSS服务器120发起的资源请求同样用于拉取完整资源,因此,在接收到源服务器130返回的完整资源后,将该完整资源发送给客户端110的同时,还会将完整资源写入OSS服务器120;对于后者,OSS服务器120发起的资源请求同样用于拉取资源片段,但在接收到源服务器130返回的资源片段后,在将资源片段发送给客户端的同时,并不将资源片段写入OSS服务器120,而是同步发起拉取完整资源的资源请求,并将源服务器130返回的完整资源写入OSS服务器120。
但当资源请求中存在大量重复请求时,会对OSS服务器120和源服务器130产生较大的流量冲击。例如:OSS服务器120上有大量的视频用户,当某一视频文件的播放量巨大时,若该视频文件未存在于OSS服务器120上,则OSS服务器120会发起大量拉取该视频文件的视频片段的请求,以及大量拉取完整该视频文件的等效请求。
可以理解地,在本发明实施例中,如果两个资源请求请求获取相同的资源,则可以认为这两个资源请求互为等效的资源请求,也就是等效请求。
基于此,本发明提供一种资源请求处理方法,基于资源请求所请求获取的资源,确定处理该资源请求的代理服务器,并将该资源请求交由该代理服务器处理,以通过多个代理服务器之间的交互,将落到不同代理服务器上的等效资源请求转发由同一代理服务器上,以保证等效资源请求由同一代理服务器处理。与现有技术相比,能有效降低大量等效资源请求的流量放大及其对存储服务器和源服务器的冲击;而且,由于是在代理服务器组内部进行的资源请求转发策略,不涉及其他组件,耦合度极低。
其中,资源可以为视频、文档、音乐、图像、HTML文档等。
下面结合图1和图2a对本发明的应用场景进行示例性说明:
第一客户端、第二客户端...第N客户端向OSS服务器发送读取第一视频文件的请求(对应于图2a的第①步);OSS服务器查找各客户端对应的Bucket中是否存有第一视频文件,若是,则将第一视频文件返回给客户端,若否,则发起资源请求(对应于图2a的第②步);虚拟服务器接收OSS服务器发起的资源请求,并基于负载均衡等,将资源请求转发给一组M个代理服务器Proxy(对应于图2a的第③步)。假设请求该第一视频文件的资源请求有10000个,M=10,为每个Proxy均匀分配1000个资源请求,则对Proxy集合和每个Proxy的资源请求进行一致性哈希分析,确定资源请求由第三Proxy执行,则其他Prxoy将资源请求转发给第三Proxy,由第三Proxy将10000个资源请求合并为1个,并发送给源服务器(对应于图2a的第④步),以使源服务器返回第一视频文件,进而将第一视频文件原路返回给对应的客户端。
其中,虚拟服务器可以为Linux(Linux Virtual Server,LVS)虚拟服务器,用于通过采用IP负载均衡技术和基于内容请求分发技术,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
图3为本说明书实施例提供的一种资源请求处理方法的流程示意图,参见图3,该方法可由图1或图2中的代理服务器(例如第一代理服务器等)执行,具体可以包括如下步骤:
步骤32、在第一代理服务器处接收来自于存储服务器的第一资源请求,所述第一资源请求向源服务器请求获取资源;
步骤34、基于所述第一资源请求所请求获取的资源,确定处理所述第一资源请求的代理服务器;具体可以为:
对所述第一资源请求所请求获取的资源的地址信息进行一致性哈希运算,以确定处理所述第一资源请求的代理服务器。其中,一致性哈希运算为基于一种Hash算法进行的处理,其原理在于预先准备好值Value集,在Value集不变的情况下该算法能够均匀的将Key集永久Hash到Value集中的同一个元素。具体可以为:
步骤S1、代理服务器维护有一代理服务器列表和一资源请求列表;代理服务器列表中存有与该代理服务器具有关联关系的其他代理服务器,资源请求列表中存有分配给本代理服务器的资源请求。
步骤S2、对代理服务器列表中的代理服务器的地址信息进行哈希处理,得到各代理服务器对应的哈希值,作为值集;对所述资源请求列表中的资源请求对应的资源的地址信息进行哈希处理,得到各资源请求对应的哈希值,并构建键集;
步骤S3、对值集和键集进行一致性哈希分析,确定处理资源请求列表中的各资源请求的代理服务器,从而可将等效的资源请求转发给同一代理服务器进行处理。
步骤S4、当资源请求列表中的资源请求发生变化时,例如:新增了步骤32中的第一资源请求,则重新对资源请求列表中的资源请求对应的资源的地址信息进行哈希处理,并构建新的键集,进而重新对值集和键集进行一致性哈希分析,确定处理该第一资源请求的代理服务器。
其中,代理服务器列表中的代理服务器可以为所有代理服务器,也可以为LVS虚拟服务器为本代理服务器配置的。对于后者,其具体实现方式可以为:
当OSS服务器同时或极短的时间内发起大量资源请求(对应图2的第②步)时,将该大量资源请求作为一组资源请求;然后,由LVS虚拟服务器基于IP负载均衡技术和基于内容请求分发技术,将该组资源请求中的资源请求分配给一组代理服务器,即,代理服务器列表中的代理服务器(对应图2的第③步)。
其中,LVS虚拟服务器将该组资源请求分配给各Proxy的实现可以示例为:
先基于该组资源请求中的资源请求的数量,确定所需的Proxy的个数,假设为N;然后,从系统所有Proxy中选出负载最小的N个Proxy,并基于各个选出的Proxy的负载压力,将该组资源请求中的资源请求分配至各个选出代理服务器,例如:负载压力和分配的资源请求可以为成反比关系;由此,得到该组Proxy中的各Proxy对应的资源请求列表。
其中,资源的地址信息可以为:统一资源标识符(uniform resource identifier,uri)或者统一资源定位器(uniform resource locator,url)等。uri或url可以包括网络域名host、互联网协议(Internet Protocol Address,IP)地址等。例如,uri可由域名、bucketName、object组成,格式可以为:bucketName.endpoint/object-video,具体可示例为:aaa.oss-cn-hangzhou.***.com/123.txt,其中,aaa为杭州地域的bucket,aaa中存在key为123.txt的Object,***可以为具体的OSS服务器。
步骤36、判断确定的代理服务器是否为第一代理服务器;具体可以为:
对比确定的代理服务器的标识和本第一代理服务器的标识是否相匹配,若相匹配,则确定的代理服务器为本第一代理服务器,并执行步骤38;若不相匹配,则执行步骤310;
其中,本第一代理服务器为接收到第一资源请求的第一代理服务器。
步骤38、将所述第一资源请求转发至所确定的代理服务器,以便所确定的代理服务器对所述第一资源请求进行处理;(对应于图2的第④步)
步骤310、处理所述第一资源请求。
需要说明的是,步骤310的一种实现方式可以为:
将第一资源请求发送至所述源服务器;接收所述源服务器响应于第一资源请求而返回的资源,并将所述资源返回至所述存储服务器。
即,本实现方式将等效资源请求转发给同一代理服务器,并由该代理服务器转发至源服务器,以便源服务器可为来自同一代理服务器的等效资源请求返回一个资源,降低需返回的资源数量。
结合图4,步骤310的另一种实现方式可以为:
步骤42、在第一代理服务器处接收来自于其他代理服务器的一条或多条第二资源请求,所述第二资源请求向所述源服务器请求获取与所述第一资源请求相同的资源;
其中,确定请求获取的资源是否相同的实现方式可以为:
对于第一资源请求中携带的请求获取的资源的地址信息和第二资源请求中携带的请求获取的资源的地址信息,若两个地址信息相同,则确定第一资源请求和第二资源请求请求获取的资源相同。
步骤44、对所述第一资源请求和所述第二资源请求进行合并。
步骤46、将合并得到的资源请求发送至所述源服务器;
步骤48、接收所述源服务器响应于所述合并得到的资源请求而返回的资源,并将所述资源返回至所述存储服务器。
即,本实现方式在将第一资源请求转发至源服务器之前,对等效资源请求进行合并处理,然后,将合并后的资源请求发送给源服务器,以降低对源服务器的流量冲击。
可选的,为避免出现发送给源服务器的资源请求为与响应中的资源请求为等效资源请求,导致重复拉取的情况。本实施例还包括:
将发送给源服务器的资源请求状态记录为响应中,或者,将合并得到的资源请求的状态记录为响应中。
基于此,在接收到来自源服务器的资源请求时,判断是否存在请求获取与所述第一资源请求或所述第二资源请求相同的资源的资源请求处于响应中的状态;若存在,则忽略所述第一资源请求或所述第二资源请求。
可见,本实施例通过基于资源请求所请求获取的资源,确定处理该资源请求的代理服务器,并将该资源请求交由该代理服务器处理,以通过多个代理服务器之间的交互,将落到不同代理服务器上的等效资源请求转发由同一代理服务器上,以保证等效资源请求由同一代理服务器处理。与现有技术相比,能有效降低大量等效资源请求的流量放大及其对存储服务器和源服务器的冲击;而且,由于是在代理服务器组内部进行的资源请求转发策略,不涉及其他组件,耦合度极低。
图5a和图5b为本说明书另一实施例提供的一种资源请求处理方法的流程示意图,参见图5a和图5b,该方法具体可以包括如下步骤:
步骤52、客户端向OSS服务器发送Bucket分配请求;
步骤54、OSS服务器向客户端发送分配信息;
对于步骤52和步骤54,其一种实现方式可以为:
其中,Bucket分配请求中包括用户信息和用户选择的作为镜像源站的源服务器的标识信息;其中,用户信息可以举例为:北京、杭州等用户区域,或者所需存储空间的大小、存储介质等用户需要。一般情况下,OSS服务器基于用户区域为客户端分配Bucket,并将分配的Bucket包括在分配信息中以通知客户端。
步骤56、客户端向OSS服务器发送访问请求;
其中,访问请求中携带资源的地址信息,用于读取该资源。
步骤58、OSS服务器检测Bucket中是否存在该资源;
即,OSS服务器可基于客户端标识确定为该客户端分配的Bucket,然后,从该Bucket中查找是否存在该资源,若是,则执行步骤510;若否,则执行步骤512;
步骤510、OSS服务器返回该资源的数据;
即,OSS服务器从Bucket中抓取该资源的数据,并返回给客户端,流程结束。
步骤512、OSS服务器向虚拟服务器发送资源请求;
不难理解的是,OSS服务器基于用户配置的源服务器的标识信息,例如:地址信息,向虚拟服务器发起资源请求,该资源请求携带源服务器的地址信息、资源的地址信息。
步骤514、虚拟服务器向Proxy发送分配信息;
不难理解的是,虚拟服务器可基于各Proxy的负载信息从中选出合适的一组Proxy,并将资源请求分配给选出的Proxy。
步骤516、Proxy对资源请求中的等效请求进行合并处理;
需要说明的是,步骤516的一种实现方式可以为:
基于同组内的每个Proxy会维护本组所有Proxy的列表,Proxy基于资源请求中包括的资源的地址信息,结合资源在互联网中的地址具有唯一性的特性,将包括的资源地址信息相同的资源请求划分为一个资源请求类;然后,对于每个资源请求类,Proxy根据host、uri、url等地址信息进行一致性哈希分析处理,确定每个资源请求类应该被哪个Proxy处理,并将其他Proxy处理的资源请求类的资源请求转发到其他Proxy上;然后,对属于该资源请求类的资源请求进行合并处理,即,将属于同一资源请求类的资源请求视为等效的资源请求,并合并为一个资源请求。
结合图2b,步骤516的另一种实现方式可以为:
各Proxy无需相互交互,分别独立的对接收到的资源请求中的等效资源请求进行合并处理。以第一Proxy为例,具体可以为:
第一Proxy确定接收到的资源请求,构建资源请求子列表;将资源请求子列表中请求获取的资源的地址信息相同的资源请求划分为一个资源请求类;将属于同一资源请求类的资源请求确定为等效请求。
基于此,可得到其他Proxy对应的资源请求子列表中的资源请求类。然后,各Proxy分别将其资源请求子列表中的等效请求进行合并处理,以为每个资源请求类保留一个资源请求;然后,各Proxy将合并后得到的资源请求发送给对应的源服务器(对应于图2b的步骤④)。
可见,本实现方式通过对各Proxy的资源请求子列表中的资源请求进行合并处理,以降低资源请求的数量,避免大量等效请求的流量放大及其对源服务器的冲击。
步骤518、Proxy向源服务器发送合并后的资源请求;具体可以为:
基于资源请求中携带的源服务器的地址信息,将合并后的资源请求转发至所述源服务器(对应图2中的第⑤步)。
步骤520、源服务器向Proxy返回对应资源的数据;
步骤522、Proxy向虚拟服务器返回对应资源的数据;
步骤524、虚拟服务器向OSS服务器返回对应资源的数据;
步骤526、OSS服务器向客户端返回对应资源的数据。
另外,当客户端请求的是完整的第一资源时,OSS服务器还会在执行步骤526的同时将资源的数据存入OSS服务器;当客户端请求的是资源片段时,OSS服务器在执行步骤526的同时,还会发起提取完整资源的资源请求,以从源服务器提取完整资源并保存。
可选的,为避免出现发送给源服务器的资源请求为正在执行的资源请求,导致的重复获取的情况,本实施例还进一步地公开了筛除资源请求的步骤。该步骤的一种实现方式可以为:
步骤S1、在将合并得到的资源请求转发至源服务器之前,获取第二资源请求列表,所述第二资源请求列表中的资源请求处于响应中的状态;
其中,第二资源请求列表可以为本组Proxy维护的列表,也可以为所有Proxy维护的列表。其维护方式可以为:
将合并得到的资源请求请求获取的资源的地址信息加入至所述第二资源请求列表;或,
在Proxy向源服务器发送资源请求后,将该资源请求的标识加入第二资源请求列表;或,
在接收到源服务器返回的资源数据后,将对应的资源请求的标识从第二资源请求列表中剔除。
步骤S2、基于资源请求请求获取的资源的地址信息,筛除合并得到的资源请求中的目标资源请求;
其中,所述第二资源请求列表中存在请求获取的资源的地址信息与所述目标资源请求请求获取的资源的地址信息相匹配。
进一步地,方法还包括:
向所述OSS服务器发送通知消息,所述通知消息用于通知所述OSS服务器转发至所述源服务器的资源请求处于响应中的状态。
其中,所述通知消息请求获取的资源的标识及其地址信息。
基于此,当OSS服务器后续再次接收到客户端发送的读取该资源的请求且Becket中未存储该资源时,向客户端返回‘读取中’的消息。
可见,本实施例通过将来自于OSS服务器的资源请求发送至源服务器之前,基于资源请求请求获取的资源的地址信息确定其中的等效资源请求,并对等效资源请求进行合并处理,以达到过滤重复资源请求的目的,进而有效降低大量等效资源请求的流量放大及其对源服务器的冲击;而且,由于是在代理服务器组内部进行的资源请求转发、合并策略,不涉及其他组件,耦合度极低。
另外,不难理解的是,等效资源请求的确定、合并等功能也可由虚拟服务器实现,但本说明书优选为由Proxy内部完成,由此LVS虚拟服务器仅负责资源请求的转发,实际的分发任务则是由代理服务器二次决策并转发完成,因此能够降低通用组件LVS虚拟服务器的复杂度,增加业务逻辑订制的灵活性。
对于上述方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施方式并不受所描述的动作顺序的限制,因为依据本发明实施方式,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于优选实施方式,所涉及的动作并不一定是本发明实施方式所必须的。
图6为本说明书一实施例提供的一种资源请求处理装置的结构示意图,参见图6,该装置具体可以包括:第一接收模块、确定模块和第一处理模块,其中,
第一接收模块61,用于在第一代理服务器处接收来自于存储服务器的第一资源请求,所述第一资源请求向所述源服务器请求获取资源;
确定模块62,用于基于所述第一资源请求所请求获取的资源,确定处理所述第一资源请求的代理服务器;
第一处理模块63,用于如果所确定的代理服务器并非第一代理服务器,则将所述第一资源请求转发至所确定的代理服务器,以便所确定的代理服务器对所述第一资源请求进行处理;如果所确定的代理服务器是第一代理服务器,则处理所述第一资源请求。
可选的,装置还包括:
第二处理模块,用于在第一代理服务器处接收来自于其他代理服务器的一条或多条第二资源请求,所述第二资源请求向所述源服务器请求获取与所述第一资源请求相同的资源;对所述第一资源请求和所述第二资源请求进行合并。
可选的,装置还包括:
资源获取模块,用于将合并得到的资源请求发送至所述源服务器;接收所述源服务器响应于所述合并得到的资源请求而返回的资源,并将所述资源返回至所述存储服务器。
可选的,装置还包括:
第三处理模块,用于判断是否存在请求获取与所述第一资源请求或所述第二资源请求相同的资源的资源请求处于响应中的状态;若存在,则忽略所述第一资源请求或所述第二资源请求。
可选的,装置还包括:第四处理模块,用于将合并得到的资源请求的状态记录为响应中。
可选的,所述确定模块,具体用于:
对所述第一资源请求所请求获取的资源的地址信息进行一致性哈希运算,以确定处理所述第一资源请求的代理服务器。
可选的,所述存储服务器为基于对象存储的存储服务器。
可见,本实施例通过基于资源请求所请求获取的资源,确定处理该资源请求的代理服务器,并将该资源请求交由该代理服务器处理,以通过多个代理服务器之间的交互,将落到不同代理服务器上的等效资源请求转发由同一代理服务器上,以保证等效资源请求由同一代理服务器处理。与现有技术相比,能有效降低大量等效资源请求的流量放大及其对存储服务器和源服务器的冲击;而且,由于是在代理服务器组内部进行的资源请求转发策略,不涉及其他组件,耦合度极低。
另外,对于上述装置实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。应当注意的是,在本发明的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合。
结合图2a或图2b,本说明书还提供一种资源请求处理系统,包括:多个存储服务器和多个代理服务器,其中:
所述存储服务器适于向各个代理服务器发送第一资源请求,所述第一资源请求向源服务器请求获取资源;
所述代理服务器包括图6对应的资源请求处理装置。
可选的,还包括:
负载均衡设备(对应于LVS服务器),所述存储服务器适于通过所述负载均衡设备来向各个代理服务器发送第一资源请求。
图7为本说明书一实施例提供的一种电子设备的结构示意图,参见图7,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成资源请求处理装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
网络接口、处理器和存储器可以通过总线系统相互连接。总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器可能包含高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器。
处理器,用于执行所述存储器存放的程序,并具体执行:
在第一代理服务器处接收来自于所述存储服务器的第一资源请求,所述第一资源请求向所述源服务器请求获取资源;
基于所述第一资源请求所请求获取的资源,确定处理所述第一资源请求的代理服务器;
如果所确定的代理服务器并非第一代理服务器,则将所述第一资源请求转发至所确定的代理服务器,以便所确定的代理服务器对所述第一资源请求进行处理;如果所确定的代理服务器是第一代理服务器,则处理所述第一资源请求。
上述如本申请图6所示实施例揭示的资源请求处理装置或管理者(Master)节点执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
资源请求处理装置还可执行图3-4,5a,5b的方法,并实现管理者节点执行的方法。
基于相同的发明创造,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行图3-4,5a,5b对应的实施例提供的资源请求处理方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (18)
1.一种资源请求处理方法,所述方法包括:
在第一代理服务器处接收来自于存储服务器的第一资源请求,所述第一资源请求向源服务器请求获取资源;
基于所述第一资源请求所请求获取的资源,确定处理所述第一资源请求的代理服务器;
如果所确定的代理服务器并非是所述第一代理服务器,则将所述第一资源请求转发至所确定的代理服务器,以便所确定的代理服务器对所述第一资源请求进行处理,其中,基于所述第一资源请求所请求获取的资源,确定处理所述第一资源请求的代理服务器,包括:对所述第一资源请求所请求获取的资源的地址信息进行一致性哈希运算,以确定处理所述第一资源请求的代理服务器。
2.根据权利要求1所述的方法,其中,所述方法还包括:
在第一代理服务器处接收来自于其他代理服务器的一条或多条第二资源请求,所述第二资源请求向所述源服务器请求获取与所述第一资源请求相同的资源;
对所述第一资源请求和所述第二资源请求进行合并。
3.根据权利要求2所述的方法,其中,在对所述第一资源请求和所述第二资源请求进行合并之后,所述方法还包括:
将合并得到的资源请求发送至所述源服务器;
接收所述源服务器响应于所述合并得到的资源请求而返回的资源,并将所述资源返回至所述存储服务器。
4.根据权利要求2所述的方法,其中,在接收所述第一资源请求或所述第二资源请求之后,所述方法还包括:
判断是否存在请求获取与所述第一资源请求或所述第二资源请求相同的资源的资源请求处于响应中的状态;
若存在,则忽略所述第一资源请求或所述第二资源请求。
5.根据权利要求2所述的方法,其中,在对所述第一资源请求和所述第二资源请求进行合并之后,所述方法还包括:
将合并得到的资源请求的状态记录为响应中。
6.根据权利要求1-5中任一项所述的方法,其中,所述存储服务器为基于对象存储的存储服务器。
7.根据权利要求1所述的方法,其中,所述方法还包括:
如果所确定的代理服务器是所述第一代理服务器,则处理所述第一资源请求。
8.一种资源请求处理装置,包括:
第一接收模块,用于在第一代理服务器处接收来自于存储服务器的第一资源请求,所述第一资源请求向源服务器请求获取资源;
确定模块,用于基于所述第一资源请求所请求获取的资源,确定处理所述第一资源请求的代理服务器,所述确定模块具体用于:对所述第一资源请求所请求获取的资源的地址信息进行一致性哈希运算,以确定处理所述第一资源请求的代理服务器;
第一处理模块,用于如果所确定的代理服务器并非是所述第一代理服务器,则将所述第一资源请求转发至所确定的代理服务器,以便所确定的代理服务器对所述第一资源请求进行处理。
9.根据权利要求8所述的装置,其中,还包括:
第二处理模块,用于在第一代理服务器处接收来自于其他代理服务器的一条或多条第二资源请求,所述第二资源请求向所述源服务器请求获取与所述第一资源请求相同的资源;对所述第一资源请求和所述第二资源请求进行合并。
10.根据权利要求9所述的装置,其中,还包括:
资源获取模块,用于将合并得到的资源请求发送至所述源服务器;接收所述源服务器响应于所述合并得到的资源请求而返回的资源,并将所述资源返回至所述存储服务器。
11.根据权利要求9所述的装置,其中,还包括:
第三处理模块,用于判断是否存在请求获取与所述第一资源请求或所述第二资源请求相同的资源的资源请求处于响应中的状态;若存在,则忽略所述第一资源请求或所述第二资源请求。
12.根据权利要求9所述的装置,其中,还包括:
第四处理模块,用于将合并得到的资源请求的状态记录为响应中。
13.根据权利要求8-12中任一项所述的装置,其中,所述存储服务器为基于对象存储的存储服务器。
14.根据权利要求8所述的装置,其中,所述第一处理模块还用于如果所确定的代理服务器是所述第一代理服务器,则处理所述第一资源请求。
15.一种资源请求处理系统,包括:多个存储服务器和多个代理服务器,其中:
所述存储服务器适于向各个代理服务器发送第一资源请求,所述第一资源请求向源服务器请求获取资源;
所述代理服务器包括根据权利要求8-14中任一项所述的资源请求处理装置。
16.根据权利要求15所述的系统,其中,还包括:
负载均衡设备,所述存储服务器适于通过所述负载均衡设备来向各个代理服务器发送第一资源请求。
17.一种电子设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-7中任一项所述的资源请求处理方法。
18.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据权利要求1-7中任一项所述的资源请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810850560.4A CN110769020B (zh) | 2018-07-28 | 2018-07-28 | 一种资源请求处理方法、装置、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810850560.4A CN110769020B (zh) | 2018-07-28 | 2018-07-28 | 一种资源请求处理方法、装置、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110769020A CN110769020A (zh) | 2020-02-07 |
CN110769020B true CN110769020B (zh) | 2022-04-08 |
Family
ID=69328934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810850560.4A Active CN110769020B (zh) | 2018-07-28 | 2018-07-28 | 一种资源请求处理方法、装置、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110769020B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979262B (zh) * | 2022-04-25 | 2024-04-19 | 阿里云计算有限公司 | 访问方法以及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341311B1 (en) * | 1998-05-29 | 2002-01-22 | Microsoft Corporation | Directing data object access requests in a distributed cache |
US7020681B1 (en) * | 1999-06-14 | 2006-03-28 | Sun Microsystems, Inc. | Method for caching XML documents viewable on devices with different displays |
CN102427480A (zh) * | 2011-12-31 | 2012-04-25 | 北京新媒传信科技有限公司 | 一种多应用服务平台系统中的应用访问方法 |
CN103392179A (zh) * | 2011-05-12 | 2013-11-13 | 广州市动景计算机科技有限公司 | 获取页面资源的方法及装置、浏览器及移动终端 |
CN104601720A (zh) * | 2015-01-30 | 2015-05-06 | 乐视网信息技术(北京)股份有限公司 | 一种缓存访问控制方法及装置 |
CN105847312A (zh) * | 2015-01-14 | 2016-08-10 | 华为技术有限公司 | 一种资源访问方法及用户终端 |
CN108337327A (zh) * | 2018-04-26 | 2018-07-27 | 拉扎斯网络科技(上海)有限公司 | 一种资源获取方法和代理服务器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120102134A1 (en) * | 2010-10-21 | 2012-04-26 | International Business Machines Corporation | Cache sharing among branch proxy servers via a master proxy server at a data center |
GB2510192A (en) * | 2013-01-29 | 2014-07-30 | Openwave Mobility Inc | Intermediate proxy server caching buffer searched with key (URI hash) |
-
2018
- 2018-07-28 CN CN201810850560.4A patent/CN110769020B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341311B1 (en) * | 1998-05-29 | 2002-01-22 | Microsoft Corporation | Directing data object access requests in a distributed cache |
US7020681B1 (en) * | 1999-06-14 | 2006-03-28 | Sun Microsystems, Inc. | Method for caching XML documents viewable on devices with different displays |
CN103392179A (zh) * | 2011-05-12 | 2013-11-13 | 广州市动景计算机科技有限公司 | 获取页面资源的方法及装置、浏览器及移动终端 |
CN102427480A (zh) * | 2011-12-31 | 2012-04-25 | 北京新媒传信科技有限公司 | 一种多应用服务平台系统中的应用访问方法 |
CN105847312A (zh) * | 2015-01-14 | 2016-08-10 | 华为技术有限公司 | 一种资源访问方法及用户终端 |
CN104601720A (zh) * | 2015-01-30 | 2015-05-06 | 乐视网信息技术(北京)股份有限公司 | 一种缓存访问控制方法及装置 |
CN108337327A (zh) * | 2018-04-26 | 2018-07-27 | 拉扎斯网络科技(上海)有限公司 | 一种资源获取方法和代理服务器 |
Non-Patent Citations (1)
Title |
---|
HTTP缓存系统设计与实现;张全明;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110769020A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107395659B (zh) | 一种业务受理及共识的方法及装置 | |
CN107360010B (zh) | 一种网站灰度发布方法及装置 | |
CN109660578B (zh) | Cdn的回源处理方法及装置、系统 | |
US8321503B2 (en) | Context-specific network resource addressing model for distributed services | |
CN111385316B (zh) | 资源刷新方法、访问方法及装置 | |
KR20180125009A (ko) | 데이터 캐싱 방법 및 장치 | |
CN111124476A (zh) | 业务规则配置和创建方法及装置 | |
US20240020131A1 (en) | Isolating applications at the edge | |
CN109657434B (zh) | 应用访问方法及装置 | |
CN111786984B (zh) | Pod通信连接方法、装置及电子设备、存储介质 | |
CN113315706B (zh) | 私有云流量控制方法、设备及系统 | |
JP2019519849A (ja) | サーバへの攻撃を防ぐ方法及びデバイス | |
CN114172966A (zh) | 单元化架构下的服务调用方法、服务处理方法及装置 | |
CN110769020B (zh) | 一种资源请求处理方法、装置、设备及系统 | |
CN110740464A (zh) | 一种nf服务发现方法及设备 | |
CN110889073B (zh) | 页面请求的响应方法、服务器及计算机存储介质 | |
CN116962348A (zh) | 一种基于域名解析的视频流量处理方法、系统及电子设备 | |
CN110545328A (zh) | 非入侵式服务功能扩展增强方法、装置及服务器 | |
CN108023920B (zh) | 一种数据包传输方法、设备及应用接口 | |
CN113411364B (zh) | 资源获取方法、装置及服务器 | |
CN112861031B (zh) | Cdn中url刷新方法、装置、设备以及cdn节点 | |
CN115827745A (zh) | 内存数据库集群的实现方法、装置及内存数据库集群 | |
CN115705341A (zh) | 数据加载方法、文件服务器、管理服务器和存储介质 | |
CN113282347A (zh) | 插件运行方法、装置、设备及存储介质 | |
CN113761400A (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 |