一种流水线Web服务器的系统及其工作方法

文档序号:7929935阅读:244来源:国知局
专利名称:一种流水线Web服务器的系统及其工作方法
技术领域
本发明涉及网络服务器,尤其涉及一种流水线Web服务器的系统及其工作 方法。
背景技术
近年来,提高网络服务器的性能已经成为处理以网络为基础的服务的关键 问题。很多在线事务处理和分布式服务的关键特征开始统治了高性能Web服务 器的设计,因为预料这些服务器会成为提供网络为基础的服务的瓶颈。为了提 高web服务器的性能有三类技术被提了出来软件扩展,硬件扩展和基于簇
(cluster)的扩展。软件和硬件扩展技术可增强单点服务器的性能。通常, 软件为基础的方法会尽力改进Web服务器的缓冲(cache)命中率,从而降低 磁盘访问延迟以满足用户的需求。另一方面,硬件扩展通过向系统中加入更多 的处理器和内存提供附加的计算能力。而以簇为基础的方案通过利用单一域名 下的由同构或异构节点组成的机群来解决问题。这种方法被Google和e-Bay 有效地使用了 。
针对Web服务器人们已经提出了 4种体系结构。
第一种为MP (Multi-Process,多进程)模型。该模型有一个进程池,每
个进程被用来执行与服务一个请求相关的基本操作。因为使用了多进程,很多 http请求能够并发地被服务。Apache Web服务器当初就采用的是MP模型。这
种模型的缺点是进程间难以共享任何全局信息,例如共享的缓冲信息。与其它 模型相比, 一个MP模型的Web服务器需要更多的内存以维持每个进程有同等 的缓冲大小。所以,该种模型总的性能要低于其它的模型。
第二种为MT (Multi-Thread,多线程)模型。该模型很多有同一个共享 地址空间的核心线程(kernel thread)组成。每个线程处理一个客户的请求, 独立地执行请求处理的步骤。这种模型的优点是全部线程能够共享任何全局信 息。特别地,全部线程共享数据缓冲。但是,不是全部操作系统支持核心线程,同时,线程间共享数据缓冲可能导致很高的同步开销。广泛使用的Apache Web 服务器就升级到了MT模型。
第三种是SPED (Single-Process Event-Driven,单进程事件驱动)模型。 该种模型使用非阻塞I/O操作。SPED能够避免上下文切换和进程/线程间的同 步开销。这个模型已经被Zeus Technology公司实现。但是,这个模型中的非 阻塞I/O操作实际上也可能阻塞,特别是在由于目前操作系统的限制执行磁盘 相关的操作时。因此,对于磁盘依赖负载SPED模型没有表现得比MT模型好。
第四禾中是AMPED (Asynchronous Multi—Process Event—Driven,异步多 进程事件驱动)模型。该种模型可以减轻SPED模型的缺点,其原型是Rice大 学的Flash服务器。它由一个主Web服务器进程和很多主要用来处理I/O操作 的帮助线程组成。由于多个帮助者服务面向磁盘的请求,主Web服务器进程就 可仅处理缓冲击中请求。在该模型中,IPC (进程间通信)和mmap (将文件或 其它对象映射进内存的系统调用)用来做信息交换。但是,这四个模型都是为 单CPU系统设计的,没有考虑到硬件技术的最新发展——多核SMP和SoC技术。
近来,Intel和AMD都争相推出双核甚至4核的CPU以瞄准高性能服务器 市场;同时,I丽和Sony等公司联合推出了有多达8个处理器单元的Cell芯 片,它们掀起了高性能服务器向多核/多线程技术的转移,可以预见4核或者 8核SMP不久将推向市场。另一方面,随着深亚微米技术的蓬勃发展,SoC体 系结构在不久的将来将成为现实,到那时拥有几十亿只晶体管的SoC将可能统 治高性能计算领域。例如,如果技术能够降低到35nm,制造拥有多达32/64 处理器的SoC将成为可能。因此,网络服务器必须采用多核SMP与SoC技术。
这就要求网络服务器的体系结构必须做出变革,以迎接新的硬件技术的发展。 为此, 一种新的Multi-Thread Pipelined (多线程流水线)Web服务器 体系结构被提了出来,它利用了MT模型的优点,但是通过限制进程数量减轻 了同步的开销。
SEDA (Staged Event Driven Architecture,分级事件驱动架构)是加州 大学伯克利分校研究的一套优秀的高性能互联网服务器架构模型。其设计目标 是支持大规模并发处理、简化系统开发、支持处理监测、支持系统资源管理。
其主要工作原理为将任务分解到不同的级(stage)中。每一级(stage)完成 一部分单独的处理逻辑;各级之间性能隔离;独立进行负载调度。SEDA模型的结构分为四个部分。
一个接受输入的事件队列(Event Queue)。
一个应用开发者编写的事件处理器(Event Handler)。
一个控制器,用于对执行过程进行控制,包括并发线程数量,批处理数量。
一个线程池(Thread Pool)用于并发处理。
请求的处理流程被划分成5个不同的流水级,接收的应用在每一级以队列 的形式分级执行。每一级都可以被独立管理,每级之间可以串行也可以并行工 作,或者两者兼有。事件队列使得每一级可以独立进行负载调度。
流水级的输入通过事件队列获得。流水级的输出会以事件形式推送到其他 流水级的事件队列中。流水级之间的这种连接关系由应用开发人员指定。
总的来说,SEDA架构将应用的整个处理过程分割为多个流水级。每个流 水级可以独立进行开发。同时流水级之间通过事件队列来进行通信,可以降低 耦合性。能够以很小的成本来适应将来的系统逻辑变化。同时系统提供了标准 的资源控制,使得应用开发人员只需要专注于实现事件处理器的内部逻辑。而 无须关注多线程、资源共享并且同时可以在运行时对于每一个流水级的运行情 况进行监测以及调整。
但是,以上方法存在如下局限性。
第一,事件队列尽管减少了模块间的耦合性,但是会降低响应速度;
第二,没有足够可靠性上的隔离机制;
第三,流水级之间的不平衡性导致资源利用率低;
第四,流水线阻塞影响性能。

发明内容
为了解决上述的技术问题,本发明提供了流水线Web服务器的系统及其工 作方法,能够在流水线基础上提高可靠性、增加资源流动和实现动态流水线。 本发明公开了一种流水线Web服务器的系统,包括
分布式虚拟机监控模块,用于对所述Web服务器的部件进行虚拟化,创建 多个虚拟机;
所述虚拟机,用于处理接收的客户端发送的请求或上一流水级发送的请 求,在将处理结果作为一个请求发送给下一流水级时,向Web服务器控制模块申请下一流水级,接收到所述Web服务器控制模块回复后,将所述请求发送给 所述回复指定的下一流水级的虚拟机;
所述Web服务器控制模块,用于维护记录可用虚拟机的虚拟机信息列表, 在接收到虚拟机发送的申请下一流水级的申请时,运用调度策略从所述虚拟机 信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息 回复给所述虚拟机。
所述虚拟机还用于在确定发送的请求被下一流水级处理完成时,丢弃所述 请求。
所述虚拟机还用于周期地向所述Web服务器控制模块发送心跳消息; 所述Web服务器控制模块还用于当未在预设时间内接收到所述虚拟机的 心跳消息时,将所述虚拟机从所述虚拟机信息列表中删除。
所述虚拟机进一步用于在接收到客户端发送的请求时,解析出URL,判断 所述虚拟机的全局缓冲中是否有所述请求对应的表项,如果是,则获取文件并 将文件发送给所述客户端,否则,向所述Web服务器控制模块申请下一流水级, 接收到所述Web服务器控制模块回复后,以所述URL为处理结果,将所述URL
作为一个请求发送给所述回复指定的下一流水级的虚拟机;在接收到所述请求 对应的http响应后,将所述响应发送给所述客户端。
所述虚拟机在获取文件并将文件发送给所述客户端时进一步用于判断所 述文件是否在所述虚拟机内,如果是,则将所述文件发送给所述客户端;否则, 建立同所述文件所在虚拟机间的连接,将所述文件取回到所述虚拟机,将所述 文件发送给所述客户端。
所述虚拟机进一步用于在接收到上一流水级发送的URL时,解析URL,获 得对应的文件路径,向所述Web服务器控制模块申请下一流水级,接收到所述 Web服务器控制模块回复后,以所述文件路径为处理结果,将所述文件路径作 为一个请求发送给所述回复指定的下一流水级的虚拟机。
所述虚拟机进一步用于在接收到上一流水级发送的文件路径时,读取所述 文件,将文件发送给接收对应客户端请求的虚拟机。
所述虚拟机还用于在接收到上一流水级的请求时,回复第一确认消息;在 接收到向下一流水级发送请求对应的第一确认消息或作为流水线最后一流水 级处理完成后,向上一流水级发送第二确认消息;
9所述虚拟机在确定发送的请求被下一流水级执行完成时进一步用于在接 收到发送请求对应的第二确认消息时,确定发送的请求被下一流水级处理完 成。
所述Web服务器控制模块进一步包括资源管理模块、系统可用性模块、 资源策略模块;
所述资源管理模块,用于向所述资源策略模块提供虚拟机信息; 所述系统可用性模块,用于维护记录可用虚拟机的虚拟机信息列表; 所述资源策略模块,用于根据所述虚拟机信息确定调度策略,在接收到所
述申请时,运用所述调度策略从所述虚拟机信息列表中选择下一流水级的虚拟
机,并回复所述虚拟机。
所述Web服务器控制模块进一步包括辅助模块、系统可用性模块、资源
策略模块;
所述辅助模块,用于向所述资源策略模块提供缓冲信息; 所述系统可用性模块,用于维护记录可用虚拟机的虚拟机信息列表; 所述资源策略模块,用于根据所述缓冲信息确定调度策略,在接收到所述 虚拟机发送的申请下一流水级的申请时,运用所述调度策略从所述虚拟机信息 列表中选择下一流水级的虚拟机,并回复所述虚拟机。
本发明还公开了一种流水线Web服务器的工作方法,包括 歩骤l,对所述Web服务器的部件进行虚拟化,创建多个虚拟机; 步骤2,虚拟机处理接收到的的客户端发送的请求或上一流水级发送的请 求,如果需要将处理结果作为一个请求发送给下一流水级,则向Web服务器控 制模块申请下一流水级;Web服务器控制模块运用调度策略从维护的虚拟机信 息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回 复给所述虚拟机;所述虚拟机将所述请求发送给所述回复指定的下一流水级的 虚拟机。
所述步骤2还包括
步骤121,所述虚拟机在确定发送的请求被下一流水级处理完成时,丢弃 所述请求。
所述步骤1后还包括
步骤131,所述虚拟机周期地向所述Web服务器控制模块发送心跳消息;步骤132,所述Web服务器控制模块未在预设时间内接收到所述虚拟机的 心跳消息后,将所述虚拟机从所述虚拟机信息列表中删除。
所述步骤2进一步包括
步骤141,在接收到客户端发送的请求时,解析出URL,判断所述虚拟机 的全局缓冲中是否有所述请求对应的表项,如果是,执行步骤142,否则执行 步骤143;
步骤142,获取文件并将所述文件发送给所述客户端,
步骤143,向所述Web服务器控制模块申请下一流水级,Web服务器控制 模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将 选择的下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以所述URL 为处理结果,将所述URL作为一个请求发送给所述回复指定的下一流水级的虚 拟机。
所述歩骤142进一步包括
歩骤151,判断所述文件是否在所述虚拟机内,如果是,则执行步骤152, 否则,执行步骤153;
步骤152,将所述文件发送给所述客户端;
步骤153,建立同所述文件所在虚拟机间的连接,将所述文件取回到所述 虚拟机,将所述文件发送给所述客户端。 所述步骤143后还包括
歩骤161,第二流水级的虚拟机在接收到URL,解析URL,获得对应的文 件路径,向所述Web服务器控制模块申请下一流水级,Web服务器控制模块运 用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的 下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以所述文件路径为 处理结果,将所述文件路径作为一个请求发送给所述回复指定的下一流水级的 虚拟机。
所述步骤161后还包括
步骤171,第三流水级的虚拟机接收到上一流水级发送的文件路径,读取 所述文件,将读取的文件发送给接收对应客户端请求的虚拟机。
所述步骤171后还包括接收客户端请求的虚拟机接收到客户端的请求对 应的http响应后,将所述响应发送给所述客户端。所述步骤2还包括,所述虚拟机在接收到上一流水级的请求时,回复第一
确认消息;在接收到发送请求对应的第一确认消息或作为流水线最后一流水级 执行完成处理后,向上一流水级发送第二确认消息;
所述步骤121进一步为在接收到发送请求对应的第二确认消息时,丢弃所 述请求。
所述调度策略基于虚拟机信息或缓冲信息。
本发明的有益效果在于,通过资源的动态迁移可以更好地实现负载平衡、 提高资源利用率、进行管理配置并且节能省电;由于各个流水级的虚拟机之间 对资源的需求在时空上不同,虚拟机之间的资源划分可以超越操作系统对于进 程或线程对资源的流动的限制并且能够硬件复用和资源动态调度,实现了高
吞吐量、高可靠性和高资源利用率。


图1是本发明流水线Web服务器的系统结构图2是请求进入服务器的实施流程图3是连接可靠性工作流示意图4是本发明流水线Web服务器的工作方法的流程图。
具体实施例方式
下面结合附图,对本发明做进一步的详细描述。
本发明流水线划分为多个流水级,从而可以提高系统整体吞吐量。每一个 流水级都在虚拟机上执行,采用动态流水线,利用基于虚拟机的资源动态流动, 从而可以提高资源利用率。
本发明流水线Web服务器的系统结构如图1所示。
Web服务器包括分布式虚拟机监控模块101、 Web服务器控制模块102、 虚拟机103。
分布式虚拟机监控模块101 (DV薩),用于对所述Web服务器的部件进行 虚拟化,创建多个虚拟机103。
分布式虚拟机监控模块101是Web服务器的基础模块,提供分布资源如 CPU、内存、磁盘、网卡等部件的虚拟化,建立统一的资源空间及能力空间,创建和管理虚拟机103。从而实现计算资源在部件级的虚拟化,进而实现资源
和能力在虚拟机103间的流动,在Web服务器内的流动;对于Web服务器提供 各流水级虚拟机103以及提供虚拟机103相关信息的接口, Web服务器控制模 块102能够利用上述接口重启虚拟机103,与虚拟机103建立连接获得虚拟机
,自
I R尼、o
Web服务器控制模块102,用于维护记录可用虚拟机103的虚拟机信息列 表,在接收到虚拟机103发送的申请时,运用调度策略从虚拟机信息列表中选 择下一流水级的虚拟机,并回复该虚拟机103。
Web服务器控制模块102,通过接收虚拟机103的启动和可用信息,检测 虚拟机故障,维护可用的虚拟机信息列表;根据虚拟机103发来的请求下一流 水级的虚拟机的申请,运用调度策略,选择可用的下一流水级虚拟机,将其返 回给请求的虚拟机103。
Web服务器控制模块102包括资源管理模块121、系统可用性模块122、 辅助模块123、资源策略模块124。
资源管理模块121,用于向资源策略模块124提供虚拟机信息。
资源管理模块121中包括有虚拟机信息列表。
系统可用性模块122,用于维护记录可用虚拟机的虚拟机信息列表。 系统可用性模块122保证系统中虚拟机的可用性,当检测到虚拟机103
故障时,通知分布式虚拟机监控模块101重启该虚拟机103。
系统可用性模块122保证系统中各级服务的可用性,当检测到错误时,重
启服务或者虚拟机103来保证系统的服务可用性;在新建立的虚拟机103加入
到系统中之前,需经过该模块的检测,确认可用后才能加到系统的虚拟机信息
列表中。
辅助模块123,用于向资源策略模块124提供缓冲信息; 辅助模块123记录缓冲的相关信息,以实现协同缓冲相关的策略。 资源策略模块124,用于根据虚拟机信息和/或缓冲信息确定调度策略,
在接收到虚拟机103的申请时,运用调度策略从虚拟机信息列表中选择下一流
水级的虚拟机,并回复该虛拟机103。
虚拟机103,用于处理接收的客户端发送的请求或上一流水级发送的请
求,在将处理结果作为一个请求发送给下一流水级时,向Web服务器控制模块102申请下一流水级,接收到Web服务器控制模块102回复后,将请求发送给
回复指定的下一流水级的虛拟机。
虚拟机103还要定期向Web服务器控制模块102发送心跳消息,以表明自
己可用。
虚拟机103的启动过程如下。
步骤l,当虛拟机103启动时,将自身信息告诉Web服务器控制模块102。 步骤2, Web服务器控制模块102将该虚拟机103的信息添加到虚拟机信 息列表中。
步骤3,该虛拟机103将Web服务器控制模块102中已有的虚拟机信息信
息列表下载到本地。
步骤4,当该虚拟机103自身初始化完成时,向Web服务器控制模块102 发送自身上线信息,即表示该虛拟机103可用。
步骤5, Web服务器控制模块102收到虚拟机103的上线消息后,将其标
识设为可用。
步骤6, Web服务器控制模块102将该虚拟机103的可用信息记录到虚拟 机信息列表,并告诉虚拟机信息列表中其它虚拟机103该虚拟机103可用。
当请求进入服务器时,其具体实施过程如图2所述。 步骤S201,第一流水级的虚拟机103接收从客户端发来的请求,读进请 求,将请求解析为URL。
客户端发送的请求及虚拟机发送的请求以数据包的形式。
在本级的全局缓冲中寻找是否有请求对应的表项,若存在且文件在本地, 则将文件直接回传给客户端;若存在但不在本地,则根据本级虚拟机103与文 件所在虚拟机103的连接,将文件取回本地并回传给客户端;若没有对应的表 项,则向Web服务器控制模块102中的资源策略模块124申请下一流水级。
步骤S202,资源策略模块124根据调度策略选择下一流水级,然后将选 择的下一级流水传给申请的第一流水级的虚拟机103。
步骤S203,第一流水级的虚拟机103根据收到的资源策略模块124传回 的有关下一流水级的信息,用持久连接与下一流水级进行通信,URL为第一流 水级的虚拟机103的处理结果,将URL作为一个请求传递到第二流水级的虚拟 机103。
14步骤S204,第二流水级虚拟机103接收第一流水级发送来的URL,对URL 进行解析,得到对应的文件路径,并向资源策略模块124申请下一流水级的虚 拟机103。
步骤S205,资源策略模块124根据调度策略选择下一流水级的虚拟机103, 然后将选择的下一流水级的虚拟机103传给请求的第二流水级的虚拟机103。
步骤S206,第二流水级的虚拟机103根据收到的资源策略模块124传回 的有关下一流水级的信息,用持久连接与下一流水级的虚拟机103进行通信, 文件路径为第二流水级虚拟机103的处理结果,将文件路径作为一个请求传递 到第三流水级的虚拟机103。
步骤S207,第三流水级的虚拟机103接收来自第二流水级的文件路径, 读取磁盘获得文件,并且根据请求的源,将读取的文件发回给对应的第一流水 级的虚拟机103。
步骤S208,第一流水级的虚拟机103接收来自第三流水级发回来的已经 得到的http响应,将该http响应跟连接进行映射,发送给对应的连接的客户
丄山顺。
在选择下一流水级虚拟机103时,所使用的调度策略可以基于虚拟机信 息,也可以基于协同缓冲信息,或者基于虚拟机信息和协同缓冲信息。基于上 述动态的选择,可以避免流水线造成的阻塞,并且可以根据虚拟机上的资源信 息进行资源流动,从而更好的实现负载均衡和资源分配,提高资源利用率。
图3为连接可靠性工作流示意图。
实现连接处理的可靠性保证的基于用户层ACK实施方式如下 使用两个ACK。 ACK-I,作为下一级流水收到请求的确认;ACK-II,作为 通知上级流水可以丢掉包的确认。 步骤S301,请求进入系统。
歩骤S302,第一流水级虚拟机103执行结束时,由Web服务器控制模块 102利用调度策略选择下一流水级虚拟机,将请求发送至进入第二流水级的处 理队列,同时将其挂在第一流水级的等待ACK-I队列中。
步骤S303,当第二流水级的虚拟机103接受到该请求时,向第一流水级 的虚拟机103发送ACK-I,表示已经收到;当第一流水级的虚拟机103收到第 二流水级的虚拟机103发来的ACK-1时,将挂在等待ACK-I队列中的请求挂在等待ACK-II队列中。
步骤S304,第二流水级的虚拟机103执行结束时,由Web服务器控制模 块102利用调度策略选择下一级虚拟机,将请求发送至进入第三流水级的处理 队列,同时将其挂在第二流水级的等待ACK-I队列中。
步骤S305,当第三流水级的虚拟机103接收到该请求时,向第二流水级 的虚拟机103发送ACK-I,表示已经收到;当第二流水级的虚拟机103收到第 三流水级的虚拟机103发来的ACK-I时,将挂在等待ACK-I队列中的请求挂在 等待ACK-II队列中。
步骤S306,第二流水级的虚拟机103向第一流水级的虚拟机103发送 ACK-II,表明经第二流水级处理的请求已成功发送到第三流水级进行处理,第 一流水级的虚拟机103收到第二流水级的虚拟机103发来的ACK-II后,将挂 在ACK-II队列中对应的请求删除。
步骤S307,第三流水级的虚拟机103将文件发送给接收该请求的第一流 水级的虚拟机103。
歩骤S308,第三流水级的虚拟机103向第二流水级的虚拟机103发送 ACK-II,表明经第三流水级处理的请求已成功发送到第四流水级进行处理,第 二流水级的虚拟机103收到第三流水级的虚拟机103发来的ACK-II后,将挂 在ACK-II队列中对应的请求删除。
基于心跳机制的应用可靠性保障的具体实施方式
如下。
每个虚拟机103定期向Web服务器控制模块102发送心跳消息,Web服务 器控制模块102从而可以知道哪些虚拟机103可用。当Web服务器控制模块 102检测到一段时间内没有收到某个虚拟机103的心跳消息,则认为该虚拟机 103出现故障,则将该虚拟机103置为不可用,同时将该消息通知虚拟机信息 列表中其它的虚拟机103。其它虚拟机103收到该消息后,将本地关于故障虚 拟机103的信息全部删除。
本发明流水线Web服务器的工作方法流程图如图4所示。
步骤S401,对所述Web服务器的部件进行虚拟化,创建虚拟机。
步骤S402,虚拟机处理接收到的的客户端发送的请求或上一流水级发送 的请求,如果需要将处理结果作为一个请求发送给下一流水级,则向Web服务 器控制模块申请下一流水级;Web服务器控制模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信 息回复给所述虚拟机;所述虚拟机将所述请求发送给所述回复指定的下一流水 级的虚拟机。
步骤S402还包括虚拟机在确定发送的请求被下一流水级处理完成时,
丢弃所述请求。
步骤S401后还包括
步骤411,所述虚拟机周期地向所述Web服务器控制模块发送心跳消息; 步骤412,所述Web服务器控制模块未在预设时间内接收到所述虚拟机的 心跳消息后,将所述虚拟机从所述虚拟机信息列表中删除。 步骤S402进一歩包括
步骤421,在第一流水级虚拟机接收到客户端发送的请求时,解析出URL, 判断所述虚拟机的全局缓冲中是否有所述请求对应的表项,如果是,执行步骤 422,否则执行步骤423。
步骤422,获取文件并将所述文件发送给所述客户端。
所述步骤422进一步为判断所述文件是否在所述虚拟机内,如果是,则将 所述文件发送给所述客户端;否则,建立同所述文件所在虚拟机间的连接,将 所述文件取回到所述虚拟机,将所述文件发送给所述客户端。
步骤423,向所述Web服务器控制模块申请下一流水级,Web服务器控制
模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将 选择的下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以URL为处 理结果,将所述URL作为一个请求发送给所述回复指定的下一流水级的虚拟 机。
步骤424,第二流水级的虚拟机在接收到URL,解析URL,获得对应的文 件路径,向所述Web服务器控制模块申请下一流水级,Web服务器控制模块运 用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的 下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以文件路径为处理 结果,将所述文件路径作为一个请求发送给所述回复指定的下一流水级的虚拟 机。
步骤425,第三流水级的虚拟机接收到上一流水级发送的文件路径,读取 所述文件,将读取的文件发送给第一流水级的虚拟机。步骤426,第一流水级的虚拟机接收到客户端的请求对应的http响应后, 将所述响应发送给所述客户端。
所述步骤S402还包括,所述虚拟机在接收到上一流水级的请求时,回复 第一确认消息;在接收到发送请求对应的第一确认消息或作为流水线最后一流 水级执行完成处理后,向上一流水级发送第二确认消息;在接收到发送请求对 应的第二确认消息时,丢弃所述请求。
所述调度策略基于虚拟机信息或缓冲信息;或者,调度策略基于虚拟机信 息和缓冲信息。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条 件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于 以上的说明,而是由权利要求书的范围来确定的。
权利要求
1. 一种流水线Web服务器的系统,其特征在于,包括分布式虚拟机监控模块,用于对所述Web服务器的部件进行虚拟化,创建多个虚拟机;所述虚拟机,用于处理接收的客户端发送的请求或上一流水级发送的请求,在将处理结果作为一个请求发送给下一流水级时,向Web服务器控制模块申请下一流水级,接收到所述Web服务器控制模块回复后,将所述请求发送给所述回复指定的下一流水级的虚拟机;所述Web服务器控制模块,用于维护记录可用虚拟机的虚拟机信息列表,在接收到虚拟机发送的申请下一流水级的申请时,运用调度策略从所述虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机。
2. 如权利要求l所述的流水线Web服务器的系统,其特征在于,所述虚拟机还用于在确定发送的请求被下一流水级处理完成时,丢弃所述请求。
3. 如权利要求1所述的流水线Web服务器的系统,其特征在于, 所述虚拟机还用于周期地向所述Web服务器控制模块发送心跳消息; 所述Web服务器控制模块还用于当未在预设时间内接收到所述虚拟机的心跳消息时,将所述虚拟机从所述虚拟机信息列表中删除。
4. 如权利要求l所述的流水线Web服务器的系统,其特征在于, 所述虚拟机进一歩用于在接收到客户端发送的请求时,解析出URL,判断所述虚拟机的全局缓冲中是否有所述请求对应的表项,如果是,则获取文件并 将文件发送给所述客户端,否则,向所述Web服务器控制模块申请下一流水级, 接收到所述Web服务器控制模块回复后,以所述URL为处理结果,将所述URL 作为一个请求发送给所述回复指定的下一流水级的虚拟机;在接收到所述请求 对应的http响应后,将所述响应发送给所述客户端。
5. 如权利要求4所述的流水线Web服务器的系统,其特征在于, 所述虚拟机在获取文件并将文件发送给所述客户端时进一步用于判断所述文件是否在所述虚拟机内,如果是,则将所述文件发送给所述客户端;否则, 建立同所述文件所在虚拟机间的连接,将所述文件取回到所述虚拟机,将所述文件发送给所述客户端。
6. 如权利要求4所述的流水线Web服务器的系统,其特征在于, 所述虚拟机进一步用于在接收到上一流水级发送的URL时,解析URL,获得对应的文件路径,向所述Web服务器控制模块申请下一流水级,接收到所述 Web服务器控制模块回复后,以所述文件路径为处理结果,将所述文件路径作 为 一个请求发送给所述回复指定的下一流水级的虚拟机。
7. 如权利要求6所述的流水线Web服务器的系统,其特征在于,所述虚拟机进一步用于在接收到上一流水级发送的文件路径时,读取所述文件,将文 件发送给接收对应客户端请求的虚拟机。
8. 如权利要求2所述的流水线Web服务器的系统,其特征在于,所述虚拟机还用于在接收到上一流水级的请求时,回复第一确认消息;在 接收到向下一流水级发送请求对应的第一确认消息或作为流水线最后一流水 级处理完成后,向上一流水级发送第二确认消息;所述虚拟机在确定发送的请求被下一流水级执行完成时进一步用于在接 收到发送请求对应的第二确认消息时,确定发送的请求被下一流水级处理完 成。
9. 如权利要求l所述的流水线Web服务器的系统,其特征在于, 所述Web服务器控制模块进一歩包括资源管理模块、系统可用性模块、资源策略模块;所述资源管理模块,用于向所述资源策略模块提供虚拟机信息; 所述系统可用性模块,用于维护记录可用虚拟机的虚拟机信息列表; 所述资源策略模块,用于根据所述虚拟机信息确定调度策略,在接收到所述申请时,运用所述调度策略从所述虚拟机信息列表中选择下一流水级的虚拟机,并回复所述虚拟机。
10. 如权利要求l所述的流水线Web服务器的系统,其特征在于,所述Web服务器控制模块进一步包括辅助模块、系统可用性模块、资源 策略模块;所述辅助模块,用于向所述资源策略模块提供缓冲信息; 所述系统可用性模块,用于维护记录可用虚拟机的虚拟机信息列表; 所述资源策略模块,用于根据所述缓冲信息确定调度策略,在接收到所述虚拟机发送的申请下一流水级的申请时,运用所述调度策略从所述虚拟机信息 列表中选择下一流水级的虚拟机,并回复所述虚拟机。
11. 一种流水线Web服务器的工作方法,其特征在于,包括 步骤l,对所述Web服务器的部件进行虚拟化,创建多个虚拟机;步骤2,虚拟机处理接收到的的客户端发送的请求或上一流水级发送的请 求,如果需要将处理结果作为一个请求发送给下一流水级,则向Web服务器控 制模块申请下一流水级;Web服务器控制模块运用调度策略从维护的虚拟机信 息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回 复给所述虚拟机;所述虚拟机将所述请求发送给所述回复指定的下一流水级的 虚拟机。
12. 如权利要求ll所述的流水线Web服务器的工作方法,其特征在于, 所述歩骤2还包括步骤121,所述虚拟机在确定发送的请求被下一流水级处理完成时,丢弃 所述请求。
13. 如权利要求11所述的流水线Web服务器的工作方法,其特征在于, 所述歩骤1后还包括步骤131,所述虚拟机周期地向所述Web服务器控制模块发送心跳消息; 歩骤132,所述Web服务器控制模块未在预设时间内接收到所述虚拟机的心跳消息后,将所述虚拟机从所述虚拟机信息列表中删除。
14. 如权利要求ll所述的流水线Web服务器的工作方法,其特征在于, 所述步骤2进一步包括步骤141,在接收到客户端发送的请求时,解析出URL,判断所述虚拟机 的全局缓冲中是否有所述请求对应的表项,如果是,执行步骤142,否则执行 步骤143;步骤142,获取文件并将所述文件发送给所述客户端,步骤143,向所述Web服务器控制模块申请下一流水级,Web服务器控制 模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将 选择的下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以所述URL 为处理结果,将所述URL作为一个请求发送给所述回复指定的下一流水级的虚 拟机。
15. 如权利要求14所述的流水线Web服务器的工作方法,其特征在于, 所述步骤142进一步包括步骤151,判断所述文件是否在所述虚拟机内,如果是,则执行步骤152, 否则,执行步骤153;步骤152,将所述文件发送给所述客户端;步骤153,建立同所述文件所在虚拟机间的连接,将所述文件取回到所述 虚拟机,将所述文件发送给所述客户端。
16. 如权利要求14所述的流水线Web服务器的工作方法,其特征在于, 所述步骤143后还包括步骤161,第二流水级的虚拟机在接收到URL,解析URL,获得对应的文 件路径,向所述Web服务器控制模块申请下一流水级,Web服务器控制模块运 用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的 下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以所述文件路径为 处理结果,将所述文件路径作为一个请求发送给所述回复指定的下一流水级的 虚拟机。
17. 如权利要求16所述的流水线Web服务器的工作方法,其特征在于, 所述歩骤161后还包括步骤171,第三流水级的虚拟机接收到上一流水级发送的文件路径,读取 所述文件,将读取的文件发送给接收对应客户端请求的虚拟机。
18. 如权利要求17所述的流水线Web服务器的工作方法,其特征在于, 所述步骤171后还包括接收客户端请求的虚拟机接收到客户端的请求对应的http响应后,将所述响应发送给所述客户端。
19. 如权利要求12所述的流水线Web服务器的工作方法,其特征在于, 所述步骤2还包括,所述虚拟机在接收到上一流水级的请求时,回复第一确认消息;在接收到发送请求对应的第一确认消息或作为流水线最后一流水级 执行完成处理后,向上一流水级发送第二确认消息;所述步骤121进一步为在接收到发送请求对应的第二确认消息时,丢弃所 述请求。
20. 如权利要求ll所述的流水线Web服务器的工作方法,其特征在于, 所述调度策略基于虚拟机信息或缓冲信息。
全文摘要
本发明涉及一种流水线Web服务器的系统及其工作方法,系统包括分布式虚拟机监控模块,用于对Web服务器的部件进行虚拟化,创建多个虚拟机;虚拟机,用于处理接收的客户端发送的请求或上一流水级发送的请求,在将处理结果作为一个请求发送给下一流水级时,向Web服务器控制模块申请下一流水级,接收到Web服务器控制模块回复后,将请求发送给回复指定的下一流水级的虚拟机;Web服务器控制模块,用于维护记录可用虚拟机的虚拟机信息列表,在接收到申请时,运用调度策略从虚拟机信息列表中选择下一流水级的虚拟机,并回复虚拟机。本发明能够在流水线基础上提高可靠性、增加资源流动和实现动态流水线。
文档编号H04L29/08GK101448027SQ200810247388
公开日2009年6月3日 申请日期2008年12月29日 优先权日2008年12月29日
发明者孙毓忠, 张玉放, 王若倪 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1