专利名称:Web请求调度方法及系统的制作方法
技术领域:
本发明涉及网络通信技术,尤其涉及一种Web请求调度方法及系统。
背景技术:
在复杂的网络系统中,可以由多台服务器提供万维网(Web)服务,每台服务器可能具有不同的功能定位,例如缓存服务器、负载均衡服务器、Web服务器、数据库服务器等。 通过抽象,Web请求在服务器端将经过若干转发单元的转发,最终由处理单元处理。在转发单元和/或处理单元中可能存有缓存数据以提高访问速度。基于现有方案,在缓存时是依据统一资源定位符(Uniform Resource Locator, URL)缓存对应的数据,当同样的两套网站系统部署在分布式Web环境中,且访问URL不同, 会造成对这两套同样的系统在同一个转发单元或者处理单元上会缓存两份实际上相同的数据。而从全系统角度观察,对于同一个URL请求,由于转发单元在处理算法上的选择还可能造成同一个URL(或者不同URL但是请求文件的实际内容一致)的请求被转发至不同的转发单元或处理单元上,这样会造成在不同转发单元或者处理单元上存在实际上相同的缓存数据。
发明内容
本发明实施例是提供一种Web请求调度方法及系统,用以解决现有技术中存在的请求实质内容相同的Web请求对应多份相同数据引起的资源浪费问题,实现提高缓存利用率,降低Web服务环境的成本。本发明实施例提供了一种Web请求调度方法,包括解析接收的Web请求获取文件路径信息,并发送缓存请求,携带所述文件路径信息;获取与所述文件路径信息对应的文件标识码,获取并返回与所述文件标识码对应的缓存数据,其中,文件标识码与缓存数据为一一对应关系。本发明实施例提供了一种Web请求调度系统,包括请求处理模块,用于解析接收的Web请求获取文件路径信息,并发送缓存请求,携带所述文件路径信息;本地缓存模块,用于获取与所述文件路径信息对应的文件标识码,获取并返回与所述文件标识码对应的缓存数据,其中,文件标识码与缓存数据为一一对应关系。由上述技术方案可知,本发明实施例的Web请求调度方法及系统,通过每个文件标识码对应唯一的缓存数据,可以使得请求实质内容相同的Web请求对应同一份缓存数据,可以提升缓存的利用率、降低Web服务环境的成本。
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他
的附图。
图1为本发明第一实施例的方法流程示意图2为本发明实施例对应的系统架构图一;
图3为本发明实施例中共享缓存单元的结构示意图一;
图4为本发明实施例对应的系统架构图二;
图5为本发明实施例中共享缓存单元的结构示意图二;
图6为本发明第二实施例的方法流程示意图7为本发明第三实施例的方法流程示意图8为本发明第四实施例的方法流程示意图9为本发明实施例中共享缓存单元的内部流程一的示意图10为本发明实施例中共享缓存单元的内部流程二的示意图11为本发明实施例中共享缓存单元的内部流程三的示意图12为本发明实施例中共享缓存单元的内部流程四的示意图13为本发明实施例中共享缓存单元的内部流程五的示意图14为本发明实施例中共享缓存单元的内部流程六的示意 图。图15为本发明实施例中缓存数据、文件路径信息、文件标识码的对应关系示意
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明第一实施例的方法流程示意图,包括步骤11 :Web请求调度系统解析接收的Web请求获取文件路径信息,并发送缓存请求,携带所述文件路径信息;步骤12 =Web请求调度系统获取与所述文件路径信息对应的文件标识码,获取并返回与所述文件标识码对应的缓存数据,其中,文件标识码与缓存数据为一一对应关系。本实施例通过每个文件标识码对应唯一的缓存数据,可以使得请求实质内容相同的Web请求对应同一份缓存数据,可以提升缓存的利用率、降低Web服务环境的成本。图2为本发明实施例对应的系统架构图一,包括转发单元/处理单元21、文件元数据存储单元22、共享缓存单元23和文件系统M,转发单元/处理单元21包括请求处理模块211和本地缓存模块212。请求处理模块211和本地缓存模块212之间的接口为H2接口,本地缓存模块212与文件元数据存储单元22之间的接口为Fl接口,本地缓存模块212 与共享缓存单元23之间的接口为Tl接口,共享缓存单元23与文件系统M之间的接口为 F2接口,文件元数据存储单元22与共享缓存单元23之间的接口为Fl接口。其中,请求处理模块211主要负责Web请求的解析,例如,解析URL、请求头等。解析之后通过H2接口来请求查询该Web请求是否对应缓存数据,缓存数据可以为对应的文件、脚本文件的字节码或者脚本文件解析后的内存数据。其中,脚本是指使用脚本编程语言编写的程序,如PHP、Ruby等程序语言编写的程序。本地缓存模块212是缓存数据查找的引擎,现有技术中本地缓存模块212中保存的是文件路径信息与缓存数据的对应关系,例如,URL与缓存数据的对应关系,通过该对应关系及URL可以查询获取对应的缓存数据。本发明实施例中,本地缓存模块212还需要保存文件标识码与缓存数据的对应关系,文件标识码可以唯一代表文件内容,例如文件的md5 值。并且,本发明实施例中,每个文件标识码只对应一份缓存数据。请求处理模块211和本地缓存模块212之间可以通过内部接口 H2进行通信,例如,请求处理模块211接收到Web请求后,向本地缓存模块212发送缓存请求,携带文件路径信息和缓存类型,缓存类型是指请求的缓存数据为文件缓存还是脚本缓存,如果本地缓存模块212中有对应的缓存数据,则可以通过H2接口返回给请求处理模块211 ;如果本地缓存模块212中没有对应的缓存数据,则可以通过Tl接口从共享缓存单元23中获取缓存数据并返回给请求处理模块211,T1接口可以为远程通信接口。文件元数据存储单元22是指存储所有Web应用文件元数据的存储单元,元数据存储单元中的元数据需要包含文件的信息,文件的信息包括但不限于文件标识码、文件路径信息。文件标识码可以唯一标识一份文件,如文件的md5值。文件元数据存储单元22可以通过Fl接口对外开放元数据查询接口。使用Fl接口可以通过文件路径信息及文件元数据存储单元22中保存的文件路径信息与文件元数据的对应关系查询到文件标识码。共享缓存单元23独立于转发单元/处理单元21来提供共享的缓存存储,并通过 Tl接口对外开放缓存查询。当接收到缓存查询请求时,如果共享缓存单元23上不存在缓存数据,共享缓存单元23可以通过F2接口从文件系统读取数据;对于脚本缓存,可以在文件系统中获取脚本文件后再经过编译得到脚本缓存。共享缓存单元23提供通过文件路径信息或者文件标识码的方式来查询缓存数据,可以提供文件缓存、字节码缓存或者脚本编译后的内存结构缓存。图3为本发明实施例中共享缓存单元的结构示意图一,包括文件缓存模块31、脚本缓存模块32和脚本引擎模块33。在共享缓存单元中,可以将图2所示的Tl接口分解为 Tl. 1和Tl. 2两种接口,Tl. 1接口对应文件缓存读取请求,Tl. 2接口对应脚本缓存读取请求。当然,Tl. 1接口与Tl. 2接口也可以合并,通过输入参数增加获取缓存的类型,再由内部调度模块来分别处理。其中,文件缓存模块31负责文件类型缓存操作,当收到文件缓存时通过携带参数的文件路径信息或者文件标识码,文件缓存模块会查询自身是否已经缓存了对应的数据, 如果存在则返回存在的数据,判断方法为通过文件路径的缓存请求如果通过文件路径信息无法查询到,将通过Fl接口查询文件标识码,再通过文件标识码查询该文件标识码对应的数据是否缓存,同时文件路径信息和/或文件标识码到缓存数据的对应关系也会被缓存,如果通过文件路径信息及文件标识码都不能获取缓存的数据,则文件缓存模块31通过 F2接口向文件系统M获取数据,从文件系统M获取的数据可以由文件缓存模块31缓存, 以供下次缓存查询。脚本缓存读取请求由脚本缓存模块32和脚本引擎模块33共同完成处理,脚本缓
7存模块32收到脚本缓存读取请求后,将查询自身是否存在脚本缓存。其中,类似于文件缓存,脚本缓存读取请求中可以携带脚本文件的文件路径信息或者文件标识码。在查询缓存时,也可以类似于文件缓存,可以通过文件路径信息或者文件标识码查询缓存数据,并建立文件路径信息、文件标识码与缓存数据的对应关系。如果有将返回缓存数据,如果没有,脚本缓存模块32将通过m请求脚本引擎模块33读取并编译脚本文件。脚本引擎模块33收到W接口调用后,将通过F2接口读取脚本文件,读取后将编译脚本文件,并将编译后的脚本数据返回给脚本缓存模块32,编译后的脚本数据可以为字节码或者其他代表脚本的可执行性的内存结构。获取后的脚本数据可以由脚本缓存模块32进行缓存以供下次缓存查询。图4为本发明实施例对应的系统架构图二,图5为本发明实施例中共享缓存单元的结构示意图二。与图2-3不同的是,用文件标识码计算模块41、51替代上述的文件元数据存储单元,文件标识码计算模块用于计算缓存数据的文件标识码文件标识码例如为缓存数据的MD5值。以文件缓存为例,本地缓存模块根据文件路径信息查询不到对应的文件缓存数据后,则向文件系统获取文件数据,获取文件数据后使用文件标识码计算模块计算出文件内容的标识码。由文件缓存模块建立文件标识码与缓存数据以及文件路径信息与缓存数据的对应关系。后续请求如果发现计算出来的文件标识码已经存在缓存模块,则直接建立文件路径与已存在的缓存数据的关系,而不需要再缓存一份同样的数据。其余模块功能与上述相同,不再赘述。下面将以图2或图3所示的结构图为例说明本发明实施例,图4-5所示的结构可以参照执行。本发明实施例的具体流程可以具体参见下述各实施例。图6为本发明第二实施例的方法流程示意图,本实施例以本地存在文件路径信息对应的文件缓存数据为例。参见图6,本实施例包括步骤601 请求处理模块接收Web请求。步骤602 请求处理模块对Web请求进行解析,获取对应的文件路径信息,并向本地缓存模块发送缓存请求,携带文件路径信息。步骤603 本地缓存模块以文件路径信息查询本地是否存在文件缓存数据。步骤604:如果存在对应的文件缓存数据,本地缓存模块向请求处理模块返回文件缓存数据。其中,本地缓存模块中保存文件路径信息与文件缓存数据的对应关系,通过该对应关系,可以查询到缓存请求中携带的文件路径信息是否存在对应的文件缓存数据。进一步地,如果存在对应的文件缓存数据,可以返回该查询到的文件缓存数据。图7为本发明第三实施例的方法流程示意图,本实施例以本地不存在文件路径信息对应的文件缓存数据,但存在文件标识码对应的文件缓存数据为例。参见图7,本实施例包括步骤701 请求处理模块接收Web请求。步骤702 请求处理模块对Web请求进行解析,获取对应的文件路径信息,并向本地缓存模块发送缓存请求,携带文件路径信息。步骤703 本地缓存模块以文件路径信息查询本地是否存在文件缓存数据。步骤704 如果不存在对应的文件缓存数据,本地缓存模块向文件元数据存储单元发送查询文件标识码请求,携带文件路径信息。
步骤705 文件元数据存储单元向本地缓存模块返回文件标识码。其中,文件元数据存储单元中保存文件路径信息与文件标识码的对应关系,通过该对应关系,可以查询到与查询文件标识码请求中携带的文件路径信息对应的文件标识码。步骤706 本地缓存模块以文件标识码查询本地是否存在文件缓存数据。步骤707 如果存在对应的文件缓存数据,本地缓存模块建立文件路径信息与文件缓存数据的对应关系。步骤708 本地缓存模块向请求处理模块返回文件缓存数据。本地缓存模块中保存文件标识码与文件缓存数据的对应关系,通过该对应关系, 可以查询到文件标识码是否存在对应的文件缓存数据。进一步地,如果存在对应的文件缓存数据,可以返回给文件缓存数据。并且,为了下次可以较快的获取文件缓存数据,还可以通过文件标识码建立文件路径信息与文件缓存数据的对应关系。图8为本发明第四实施例的方法流程示意图,本实施例以本地不存在文件路径信息对应的文件缓存数据,也不存在文件标识码对应的文件缓存数据为例。参见图8,本实施例包括步骤801 请求处理模块接收Web请求。步骤802 请求处理模块对Web请求进行解析,获取对应的文件路径信息,并向本地缓存模块发送缓存请求,携带文件路径信息。步骤803 本地缓存模块以文件路径信息查询本地是否存在文件缓存数据。步骤804:如果不存在对应的文件缓存数据,本地缓存模块向文件元数据存储单元发送查询文件标识码请求,携带文件路径信息。步骤805 文件元数据存储单元箱本地缓存模块返回文件标识码。其中,文件元数据存储单元中保存文件路径信息与文件标识码的对应关系,通过该对应关系,可以查询到与查询文件标识码请求中携带的文件路径信息对应的文件标识码。步骤806 本地缓存模块以文件标识码查询本地是否存在文件缓存数据。步骤807 如果不存在对应的文件缓存数据,本地缓存模块向共享缓存单元发送缓存查询请求,携带文件路径信息或者文件标识码。步骤808 共享缓存单元执行内部流程,获取文件缓存数据。具体可以参见图9-15所示的实施例。步骤809 共享缓存单元将获取的文件缓存数据返回给本地缓存模块。步骤810 本地缓存模块建立文件路径信息与文件缓存数据的对应关系以及文件标识码与文件缓存数据的对应关系。步骤811 本地缓存模块向请求处理模块返回文件缓存数据。图9为本发明实施例中共享缓存单元的内部流程一的示意图,本实施例以获取文件缓存且存在文件路径信息对应的文件缓存数据为例。参见图9,本实施例包括步骤901 本地缓存模块向文件缓存模块发送文件缓存读取请求,携带文件路径 fn息ο步骤902 文件缓存模块查询本地是否存在该文件路径信息对应的文件缓存数据。步骤903 如果存在,文件缓存模块将该对应的文件缓存数据返回给本地缓存模块。其中,文件缓存模块中保存文件路径信息与文件缓存数据的对应关系,通过该对应关系,可以查询到文件缓存读取请求中携带的文件路径信息是否存在对应的文件缓存数据。进一步地,如果存在对应的文件缓存数据,可以返回该文件缓存数据。图10为本发明实施例中共享缓存单元的内部流程二的示意图,本实施例以获取文件缓存且不存在文件路径信息对应的文件缓存数据为例。参见图10,本实施例包括步骤1001 本地缓存模块向文件缓存模块发送文件缓存读取请求,携带文件路径 fn息ο步骤1002 文件缓存模块查询本地是否存在该文件路径信息对应的文件缓存数据。步骤1003 如果不存在对应的文件缓存数据,文件缓存模块向文件元数据存储单元发送查询文件标识码请求,携带文件路径信息。步骤1004 文件元数据存储单元向文件缓存模块返回文件标识码。其中,文件元数据存储单元中保存文件路径信息与文件标识码的对应关系,通过该对应关系,可以查询到与查询文件标识码请求中携带的文件路径信息对应的文件标识码。步骤1005 文件缓存模块查询本地是否存在与该文件标识码对应的文件缓存数据。步骤1006 如果存在对应的文件缓存数据,文件缓存模块建立文件路径信息与文件缓存数据的对应关系。步骤1007 文件缓存模块向本地缓存模块返回文件缓存数据。文件缓存模块中保存文件标识码与文件缓存数据的对应关系,通过该对应关系, 可以查询到文件标识码是否存在对应的文件缓存数据。进一步地,如果存在对应的文件缓存数据,可以返回给文件缓存数据。并且,为了下次可以较快的获取文件缓存数据,还可以通过文件标识码建立文件路径信息与文件缓存数据的对应关系。图11为本发明实施例中共享缓存单元的内部流程三的示意图,本实施例以获取文件缓存且不存在文件路径信息对应的文件缓存数据以及不存在文件标识码对应的文件缓存数据为例。参见图11,本实施例包括步骤1101 本地缓存模块向文件缓存模块发送文件缓存读取请求,携带文件路径 fn息ο步骤1102 文件缓存模块查询本地是否存在该文件路径信息对应的文件缓存数据。步骤1103 如果不存在对应的文件缓存数据,文件缓存模块向文件元数据存储单元发送查询文件标识码请求,携带文件路径信息。步骤1104 文件元数据存储单元向文件缓存模块返回文件标识码。其中,文件元数据存储单元中保存文件路径信息与文件标识码的对应关系,通过该对应关系,可以查询到与查询文件标识码请求中携带的文件路径信息对应的文件标识
10码。步骤1105 文件缓存模块以文件标识码查询本地是否存在文件缓存数据。步骤1106 如果不存在对应的文件缓存数据,文件缓存模块向文件系统发送读取文件数据请求,携带文件标识码。步骤1107 文件系统向文件缓存模块返回与该文件标识码对应的文件数据。或者文件缓存模块向文件系统发送的读取文件数据请求中携带文件路径信息,文件系统根据文件路径信息获取对应的文件数据。步骤1108 文件缓存模块缓存文件系统返回的文件数据,建立文件路径信息与文件缓存数据的对应关系以及文件标识码与文件缓存数据的对应关系。步骤1109 文件缓存模块向本地缓存模块返回文件缓存数据。图9-11所示的实施例共享缓存的内部流程的示意,并不限于上述实施例,也可以是,在本地缓存模块向文件缓存模块发送的文件缓存读取请求中既携带文件路径信息,也携带文件标识码,此时,对应的步骤1003-1004无需再执行,直接根据该携带的文件标识码查询是否存在文件缓存数据。另外,也可以是上述的文件缓存读取请求中携带文件标识码, 而不携带文件路径信息,此时步骤902、903、步骤1002-1004以及步骤1102-1104无需执行, 直接根据查询该携带的文件标识码是否存在文件缓存数据。上述是以文件缓存为例,对应的缓存数据为文件缓存数据,下面将以脚本缓存为例,对应的缓存数据为脚本缓存数据。图12为本发明实施例中共享缓存单元的内部流程四的示意图,本实施例以获取脚本缓存且存在文件路径信息对应的脚本缓存数据为例。参见图12,本实施例包括步骤1201 本地缓存模块向脚本缓存模块发送脚本缓存读取请求,携带文件路径 fn息ο步骤1202 脚本缓存模块查询本地是否存在该文件路径信息对应的脚本缓存数据。步骤1203 如果存在,脚本缓存模块将该对应的脚本缓存数据返回给本地缓存模块。其中,脚本缓存模块中保存文件路径信息与脚本缓存数据的对应关系,通过该对应关系,可以查询到文件缓存读取请求中携带的文件路径信息是否存在对应的脚本缓存数据。进一步地,如果存在对应的脚本缓存数据,可以返回该脚本缓存数据。图13为本发明实施例中共享缓存单元的内部流程五的示意图,本实施例以获取脚本缓存且不存在文件路径信息对应的脚本缓存数据为例。参见图13,本实施例包括步骤1301 本地缓存模块向脚本缓存模块发送脚本缓存读取请求,携带文件路径 fn息ο步骤1302 脚本缓存模块查询本地是否存在该文件路径信息对应的脚本缓存数据。步骤1303 如果不存在对应的脚本缓存数据,脚本缓存模块向文件元数据存储单元发送查询文件标识码请求,携带文件路径信息。步骤1304 文件元数据存储单元向脚本缓存模块返回文件标识码。其中,文件元数据存储单元中保存文件路径信息与文件标识码的对应关系,通过该对应关系,可以查询到与查询文件标识码请求中携带的文件路径信息对应的文件标识码。步骤1305 脚本缓存模块以文件标识码查询本地是否存在脚本缓存数据。步骤1306 如果存在对应的脚本缓存数据,脚本缓存模块建立文件路径信息与脚本缓存数据的对应关系。步骤1307 脚本缓存模块向本地缓存模块返回脚本缓存数据。脚本缓存模块中保存文件标识码与脚本缓存数据的对应关系,通过该对应关系, 可以查询到文件标识码是否存在对应的脚本缓存数据。进一步地,如果存在对应的脚本缓存数据,可以返回给脚本缓存数据。并且,为了下次可以较快的获取脚本缓存数据,还可以通过文件标识码建立文件路径信息与脚本缓存数据的对应关系。图14为本发明实施例中共享缓存单元的内部流程六的示意图,本实施例以获取脚本缓存且不存在文件路径信息对应的脚本缓存数据以及不存在文件标识码对应的脚本缓存数据为例。参见图14,本实施例包括步骤1401 本地缓存模块向脚本缓存模块发送脚本缓存读取请求,携带文件路径 fn息ο步骤1402 脚本缓存模块查询本地是否存在该文件路径信息对应的脚本缓存数据。步骤1403 如果不存在对应的脚本缓存数据,脚本缓存模块向文件元数据存储单元发送查询文件标识码请求,携带文件路径信息。步骤1404 文件元数据存储单元向脚本缓存模块返回文件标识码。其中,文件元数据存储单元中保存文件路径信息与文件标识码的对应关系,通过该对应关系,可以查询到与查询文件标识码请求中携带的文件路径信息对应的文件标识码。步骤1405 脚本缓存模块以文件标识码查询本地是否存在脚本缓存数据。步骤1406 如果不存在对应的脚本缓存数据,脚本缓存模块向脚本引擎模块发送编译请求,携带文件路径信息。步骤1407 脚本引擎模块向文件系统发送读取脚本数据请求,携带与文件路径信息对应的文件标识码。步骤1408 文件系统向脚本引擎模块返回脚本数据。步骤1409 脚本引擎模块对该脚本数据进行编译。编译是指将脚本数据转化为字节码数据或者脚本文件解析后的可以代表脚本执行的内存结构数据。步骤1410 脚本引擎模块向脚本缓存模块返回编译后的脚本数据。步骤1411 脚本缓存模块缓存编译后的脚本数据,建立文件路径信息与脚本缓存数据的对应关系以及文件标识码与脚本缓存数据的对应关系。步骤1412 脚本缓存模块向本地缓存模块返回脚本缓存数据。图12-14所示的实施例共享缓存的内部流程的示意,并不限于上述实施例,也可以是,在本地缓存模块向文件缓存模块发送的脚本缓存读取请求中既携带文件路径信息, 也携带文件标识码,此时,对应的步骤1303-1304无需再执行,直接根据该携带的文件标识码查询是否存在脚本缓存数据。另外,也可以是上述的文件缓存读取请求中携带文件标识码,而不携带文件路径信息,此时步骤1202、1203、步骤1302-1304以及步骤1402-1404无需执行,直接根据查询该携带的文件标识码是否存在脚本缓存数据。在上述各流程中,缓存数据、文件路径、文件标识码的对应关系可以参见图15,图 15为本发明实施例中缓存数据、文件路径信息、文件标识码的对应关系示意图,参见图15, 假设缓存数据为datal、data2. . . dataN,文件路径信息为urll、url2. . . urlN,文件标识码为keyl、key2. . . keyN。其中该对应关系可以通过hash算法或者其他算法进行查找获取。 其中,文件标识码与缓存数据是一一对应关系,例如keyl对应data3,key3对应data3 ;缓存数据与文件路径信息可以为一对多或者多对一或者一一对应关系,例如,urll和url2均
d£it£i30可以理解的是,上述方法及设备中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种Web请求调度方法,其特征在于,包括解析接收的Web请求获取文件路径信息,并发送缓存请求,携带所述文件路径信息;获取与所述文件路径信息对应的文件标识码,获取并返回与所述文件标识码对应的缓存数据,其中,文件标识码与缓存数据为一一对应关系。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述文件路径信息对应的文件标识码,包括本地缓存模块向文件元数据存储单元发送查询文件标识码请求,所述查询文件标识码请求中携带所述文件路径信息;接收所述文件元数据存储单元返回的与所述文件路径信息对应的文件标识码,所述文件元数据存储单元中保存文件路径信息与文件标识码的对应关系;或者,本地缓存模块从文件标识码计算模块获取所述文件标识码。
3.根据权利要求1或2所述的方法,其特征在于,所述获取并返回与所述文件标识码对应的缓存数据,包括如果本地缓存模块中保存有与所述文件标识码对应的缓存数据,则返回本地保存的缓存数据。
4.根据权利要求1或2所述的方法,其特征在于,所述获取并返回与所述文件标识码对应的缓存数据,包括如果本地缓存模块中没有保存有与所述文件标识码对应的缓存数据,则向共享缓存单元发送缓存查询请求,所述缓存查询请求中携带所述文件路径信息和/或文件标识码;接收所述共享缓存单元返回的与所述文件路径信息和/或文件标识码对应的缓存数据;返回所述缓存数据,并建立文件标识码与缓存数据的对应关系以及文件路径信息与缓存数据的对应关系。
5.根据权利要求4所述的方法,其特征在于,还包括共享缓存单元接收所述缓存查询请求;如果所述共享缓存单元中没有保存与所述文件路径信息对应的缓存数据,则获取与所述文件路径信息对应的文件标识码;如果所述共享缓存单元中保存有与所述文件标识码对应的缓存数据,则向所述本地缓存模块返回对应的缓存数据,并建立文件路径信息与缓存数据的对应关系。
6.根据权利要求4所述的方法,其特征在于,还包括共享缓存单元接收所述缓存查询请求;如果所述共享缓存单元中没有保存与所述文件路径信息对应的缓存数据,则获取与所述文件路径信息对应的文件标识码;如果所述共享缓存单元中没有保存与所述文件标识码对应的缓存数据,则从文件系统获取并缓存数据;共享缓存单元向所述本地缓存模块返回对应的缓存数据,并建立文件路径信息与缓存数据的对应关系以及文件标识码与缓存数据的对应关系。
7.根据权利要求5或6所述的方法,其特征在于,所述获取与所述文件路径信息对应的文件标识码,包括如果所述缓存查询请求中携带文件标识码,则从所述缓存查询请求中获取所述文件标识码;或者,如果所述缓存查询请求中没有携带文件标识码,则接收文件元数据存储单元根据文件路径信息以及文件路径信息与文件标识码的对应关系,获取的文件标识码;或者,如果所述缓存查询请求中没有携带文件标识码,则从文件标识码计算模块中获取所述文件标识码。
8.根据权利要求6所述的方法,其特征在于,所述从文件系统获取并缓存数据包括如果要获取文件缓存数据,则共享缓存模块向文件系统发送读取文件数据请求,所述读取文件数据请求中携带文件标识码;并接收所述文件系统根据所述文件标识码返回的文件数据;或者,如果要获取脚本缓存数据,则共享缓存模块向文件系统发送读取脚本数据请求,所述读取脚本数据请求中携带文件标识码;并接收所述文件系统根据所述文件标识码返回的脚本数据;对所述脚本数据进行编译,缓存编译后的脚本数据。
9.一种Web请求调度系统,其特征在于,包括请求处理模块,用于解析接收的Web请求获取文件路径信息,并发送缓存请求,携带所述文件路径信息;本地缓存模块,用于获取与所述文件路径信息对应的文件标识码,获取并返回与所述文件标识码对应的缓存数据,其中,文件标识码与缓存数据为一一对应关系。
10.根据权利要求9所述的系统,其特征在于,还包括文件元数据存储单元,用于保存文件路径信息与文件标识码的对应关系;所述本地缓存模块具体用于根据所述文件路径信息从所述文件元数据存储单元获取对应的文件标识码。
11.根据权利要求9所述的系统,其特征在于,还包括文件标识码计算模块,用于计算文件标识码;所述本地缓存模块具体用于从所述文件标识码计算模块获取所述文件标识码。
12.根据权利要求9-11任一项所述的系统,其特征在于,所述本地缓存模块具体用于如果本地缓存模块中保存有与所述文件标识码对应的缓存数据,则返回本地保存的缓存数据。
13.根据权利要求9-11任一项所述的系统,其特征在于,还包括共享缓存单元,用于根据所述文件路径信息和/或文件标识码向所述本地缓存模块返回缓存数据;所述本地缓存模块具体用于如果本地缓存模块中没有保存有与所述文件标识码对应的缓存数据,则向共享缓存单元发送缓存查询请求,所述缓存查询请求中携带所述文件路径信息和/或文件标识码;接收所述共享缓存单元返回的与所述文件路径信息和/或文件标识码对应的缓存数据;返回所述缓存数据,并建立文件标识码与缓存数据的对应关系以及文件路径信息与缓存数据的对应关系。
14.根据权利要求13所述的系统,其特征在于,所述共享缓存单元包括文件缓存模块,用于如果没有保存有与所述文件路径信息对应的文件缓存数据,则向文件系统发送读取文件数据请求,所述读取文件数据请求中携带文件标识码;所述系统还包括文件系统,用于根据所述文件标识码获取并向所述文件缓存模块返回对应的文件缓存数据。
15.根据权利要求13所述的系统,其特征在于,所述共享缓存单元包括脚本缓存模块,用于如果保存有与所述文件路径信息对应的脚本缓存数据,则向所述本地缓存模块返回对应的脚本缓存数据。
16.根据权利要求13所述的系统,其特征在于,所述共享缓存单元包括脚本缓存模块和脚本引擎模块,所述脚本缓存模块用于如果没有保存有与所述文件路径信息对应的脚本缓存数据,则向脚本引擎模块发送编译请求; 所述脚本引擎模块向文件系统发送读取脚本请求所述读取脚本请求中携带文件标识码;所述系统还包括文件系统,用于根据所述文件标识码获取并向所述脚本引擎模块返回对应的脚本数据;所述脚本引擎模块还用于对所述脚本数据进行编译;所述脚本缓存模块还用于接收并缓存编译后的脚本数据。
全文摘要
本发明提供一种Web请求调度方法及系统。该方法包括解析接收的Web请求获取文件路径信息,并发送缓存请求,携带所述文件路径信息;获取与所述文件路径信息对应的文件标识码,获取并返回与所述文件标识码对应的缓存数据,其中,文件标识码与缓存数据为一一对应关系。本发明实施例可以提升缓存的利用率并降低成本。
文档编号G06F17/30GK102216930SQ201080004691
公开日2011年10月12日 申请日期2010年12月14日 优先权日2010年12月14日
发明者陈普 申请人:华为技术有限公司