大规模服务器集群应用部署方法和大规模服务器集群的制作方法

文档序号:7721329
专利名称:大规模服务器集群应用部署方法和大规模服务器集群的制作方法
技术领域
本申请涉及大规模服务器集群的应用部署,尤其涉及在大型网站的后端服务器集群中(例如大于2000台服务器的规模)实现应用部署的方法、集群。
背景技术
在现在的互联网公司巨头,比如Google、Facebook、yahoo等网站,为了支撑海量用户的访问,其后端往往存在着上万台服务器集群来提供服务。原本在只有十几台服务器的集群运行和维护过程中使用的应用部署的成熟技术在同时维护成千上万台服务器的时候,就暴露出了性能瓶颈。例如,研发部门研发出了一个新的应用,这个新的应用能否快速稳定地部署到后端成千上万台服务器并以最快的时间为用户提供服务关系着公司的业务水平和赢利效果。已知的服务器集群应用部署技术采用的是C/S架构,如图I所示,通过一台部署服务器,先把应用打包部署到这一台部署服务器上,然后这一台部署服务器对集群内的从服务器分发这个应用的包。或者,各从服务器轮流排队,等待部署服务器对其进行部署。在大规模服务器集群的情况下,已知一种应用部署技术是在C/S架构的基础上,采用分层的分发技术,如图2所示,先把应用打包,部署到一台中心部署服务器,再由这一台中心部署服务器将应用包部署到多台主部署服务器上,然后再由这些主部署服务器同时向其从服务器分发应用包。然而这样的分层部署方式造成管理上的复杂和不便,以及成本的增加,例如,需要专门设置和管理大量的专用于部署的部署服务器。从上述的已知技术的架构图中可以看出,在大规模服务器集群的情况下,已知的应用部署技术暴露出了如下缺点或问题I、通过C/S模式部署应用时,当部署服务器需要部署的从服务器数量很大,部署服务器的网络吞吐性能和硬件负载就会出现瓶颈。比如一台部署服务器要同时向1000台从服务器分发应用包,远远超过了现在服务器网卡带宽的性能指标。随着需要部署应用的从服务器的增多,对部署服务器带宽的要求就越来越高,分发的速度也就越来越慢,并且非常容易弓丨起部署服务器崩溃。而若采用各从服务器轮流排队由同一台部署服务器对其进行部署的情况,则部署周期过长。2、如果为了避免上述缺点的发生而对服务器集群进行分层,则需要通过多层的C/S架构以使得每台部署服务器向有限的从服务器分发应用部署包。这样就意味着维护成本、管理成本和开发成本的上升。本来一个应用的负载均衡设备后的所有后端服务器的软件环境往往是统一的,为了应用的部署,人为地划分出部署层次来。每个层次的部署节点都要单独地进行管理、操作、维护,每个部署节点还要为了向不同的应用服务器分发应用部署包而开发不同的部署代码,这样就造成了严重的浪费,使得服务器集群的维护和管理变得越来越复杂。3、同时,已知的基于C/S架构的部署技术,无法满足在大规模服务器集群中快速部署应用的需求,一个对千台服务器的集群部署动辄需要耗费I 2个小时的时间,严重地影响了应用上线的时间进度。

发明内容
为了解决上述问题,本申请一个方面提出了一种大规模服务器集群应用部署方法,所述方法包括步骤I:所述大规模服务器集群中的中心部署服务器将一个应用的部署包切分成多个片段,并将切分后的多个片段部署于所述大规模服务器集群中的多个应用服务器上;以及步骤2 :各个所述应用服务器在被部署完所述部署包的所有片段后,将所述所有片段拼合成一个完整的部署包。本申请的另一个方面提出了一种大规模服务器集群,所述大规模服务器集群包括一个中心部署服务器和多个应用服务器,其中,所述中心部署服务器用于将一个应用的部署包切分成多个片段,并将该切分后的多个片段部署于所述多个应用服务器上;以及各 个所述应用服务器在被部署完所述部署包的所有片段后,将所述所有片段拼合成一个完整的部署包。本申请的实现大规模服务器集群应用快速部署的方法及集群大大减轻了部署服务器的性能负载,成许多倍地加快了从部署服务器向应用服务器分发应用部署包的速度和效率,基本上消除部署服务器的处理瓶颈和网络资源瓶颈,可以做到应用部署的时间即发布时间几乎与集群内的应用服务器数量无关,也无需如传统的分层分发技术的C/S架构那样维护大量的分层部署节点,还降低了开发和维护的难度。通过以下参照附图对本申请实施例的说明,本申请的上述以及其它目的、特征和优点将更加明显。


下面将参照所附附图来描述本申请的实施例,其中图I是已知技术中采用C/S架构部署应用的示意图;图2是已知技术中采用分层分发技术的C/S架构部署应用的示意图;图3是采用本申请的实现大规模服务器集群应用快速部署的方法部署应用的示意图;图4是本申请的实现大规模服务器集群应用快速部署的方法的一个实施例的示意流程图;图5是图4所述的方法的一个实施例的示意流程图;以及图6是图4所述的方法的另一个实施例的示意流程图。
具体实施例方式
在下文中,将参照附图详细描述本申请的实施例。图3是采用本申请的实现大规模服务器集群应用快速部署的方法部署应用的示意图。如图3中所示,本申请的大规模服务器集群包括一个中心部署服务器和多个应用服务器。为了便于说明,图3中仅示出了 5个应用服务器,即应用服务器I、应用服务器2、应用服务器3...应用服务器M...以及应用服务器N,然而本申请所涉及的服务器集群中的应用服务器的实际数目可以为成千上万个。
不同于已知技术中的C/S架构和分层的C/S架构,在本申请中,大规模服务器集群的中心部署服务器把一个应用的部署包切分成多个应用部署片段(下文简称片段),例如可按照固定大小切分成多个片段,并将这些片段的每一个分别部署(例如随机部署)到不同的应用服务器上。图3中的箭头示例性地表示了应用部署片段在网络中可能的一种流向。由于每个应用部署片段很小,所以只需要很少的网络资源和很短的时间就能将这些片段部署到应用服务器上。然后每个应用服务器通过中心部署服务器提供的关于这些片段的分布路径信息向其它已部署了一些片段的应用服务器拉取自己需要的片段。例如,应用服务器3可以不直接从中心部署服务器获得应用部署包的片段,而是从应用服务器I和N获得应用部署包的不同片段,并且还可以从其它应用服务器获得自己所需的片段。作为另一个实施例,这时应用服务器仍然可以从中心部署服务器拉取片段,以便充分利用中心部署服务器的资源。同时,其它应用服务器也可以从应用服务器3获得所需的片段。每一个应用服务器在获得了该应用的部署包的所有片段之后,将这些片段拼合成·一个完整的部署包。在部署过程中,集群中的每一个应用服务器都可以把自己的关于当前已经拉取的片段的片段信息反馈给中心部署服务器,由中心部署服务器统计汇总,以指示其它应用服务器拉取片段的路径,集群中的每一个应用服务器都可以向其它应用服务器提供自己已经拉取的片段,每一个应用服务器都可以从最优(例如最近或速度最快的)路径来获得所需要的片段,因此消除了传统C/S部署技术中存在的部署服务器处理瓶颈和网络资源瓶颈。根据本发明的一个实施例,本申请的大规模服务器集群应用部署方法可以分为两个基本步骤,即,在第一个步骤中,所述大规模服务器集群中的中心部署服务器将一个应用的部署包切分成多个片段,并将该切分后的多个片段部署于所述大规模服务器集群中的多个应用服务器上;在第二个步骤中,所述应用服务器在被部署完所述部署包的所有片段后,将所述所有片段拼合成一个完整的部署包。图4是本申请的实现大规模服务器集群应用快速部署的方法的步骤的一个实施例的示意流程图,图4结合图3 —起示意性地示出了本申请的实现大规模服务器集群应用快速部署的方法的一个更具体的实施例。下面将结合如图4中所示的各个步骤来进一步描述本申请实现大规模服务器集群应用快速部署的方法。在步骤SO,开始启动应用部署。在步骤SI,大规模服务器集群的中心部署服务器将一个应用的部署包切分成多个片段。被切分后的多个片段将被部署于多个应用服务器上。例如,由中心部署服务器向相应应用服务器发送用于通知拉取片段的拉取指令,然后,在步骤S2,由接收到拉取指令的相应应用服务器分别到中心部署服务器拉取片段。作为另一个替代方案,也可以将步骤SI替换为中心部署服务器直接将切分后的片段分别发送至相应的应用服务器上,这样就可以省略如图4中所示的步骤S2。在图4所示的步骤S2中,相应应用服务器接收到拉取指令后分别到中心部署服务器拉取片段。
由于各应用服务器此时还缺少其它片段,所以各应用服务器在随后的过程中将会继续从中心部署服务器或其它应用服务器拉取其它尚未拉取的片段。应用服务器可以通过从中心服务器上获取所需要的片段的路径的方式去拉取尚未拉取的片段。如在图4所示的步骤S3中,应用服务器主动到中心部署服务器上获取所需要的其它片段的路径。可以理解,这里也可以有替换的方案,即,中心部署服务器也可以将它所知道的片段的路径信息主动分发给各个应用服务器,让应用服务器自己选择合适的路径来拉取所需要的片段。接下来,在步骤S4,应用服务器按照获取所需要的其它片段的路径去拉取所需要的其它片段,然后向中心部署服务器报告关于该其它片段的片段信息。最后,在步骤S5,当一个应用服务器在拉取完应用的部署包的所有片段后,将所有片段拼合成一个完整的部署包。根据一个实施例,在步骤SI中,中心部署服务器在切分部署包的同时,将所切分的多个片段与将要部署的应用服务器对应。例如,中心部署服务器可以根据将要部署的应用服务器的连接状态、负载、IP地址、时间以及机器名中的一个或任意组合计算出的随机数 或者哈希值,将将要部署的应用服务器与多个片段一一对应,并将对应关系包含在拉取指令中发送给将要部署的应用服务器。然后在步骤S2中,将要部署的应用服务器按照拉取指令中的对应关系指定的片段到中心部署服务器上拉取片段。或者,作为另一种方案,在步骤SI中,将所切分的多个片段与将要部署的应用服务器一一对应之后,直接根据所述对应关系将相应片段发送至相应的应用服务器上,相应的应用服务器直接接收中心部署服务器主动发送过来的片段,那么,则可以省略步骤S2。根据另一个实施例,在步骤SI中,中心部署服务器只将部署包切分成多个片段,而在步骤S2中,在应用服务器到中心部署服务器拉取片段的过程中,将所切分的多个片段一一对应到将要部署的应用服务器。例如,可以按应用服务器连接到中心部署服务器的连接先后次序依次拉取所切分的片段,或者按负载均衡原则负载较轻的应用服务器优先拉取所切分的片段,或者按IP地址、机器名等的一个或任意组合指定应用服务器以便使部署时负载分布均勻。在步骤S4与步骤S5之间,应用服务器可以判断是否已拉取完部署包的所有片段,如果判断结果为尚未拉取完所有片段,就返回到步骤S3,如果判断结果为已经拉取完所有片段,则进入步骤S5。应当理解,中心部署服务器第一次向应用服务器部署片段时,中心服务器知道哪个片段部署在哪个应用服务器上,因此,这时没有必要由应用服务器向中心部署服务器报告片段信息,中心部署服务器只要记录该片段信息即可。如果中心部署服务器不知道哪个片段部署在哪个应用服务器上,那么,将由应用服务器向中心部署服务器报告片段信息。关于片段的片段信息可以包括所述片段的地址以及该片段的代号,例如,所拉取片段的标识、所拉取片段被存储在当前应用服务器上的目录路径、以及当前应用服务器的地址等信息。在步骤S3中,中心部署服务器可以根据所需要的片段当前所在的应用服务器的连接状态、负载、IP地址、时间以及机器名中的一个或任意组合计算出的随机数或者哈希值,提供应用服务器所需要的片段的路径。例如,可以将所需要的片段当前所在的应用服务器中负载较轻的应用服务器作为优先拉取路径,以便使部署时负载分布均匀。另外,在步骤S5或S5之前的任一步骤或任意步骤的组合中,应用服务器可以获得应用的部署包的MD5码,以便于应用服务器在步骤S5中使用MD5码对所拼合成的部署包进行校验。作为另一个实施例,中心部署服务器为应用服务器提供的所需要的片段的路径可以包括所述中心部署服务器自身,即,在步骤S3中,中心部署服务器首次部署完毕所切分的片段之后,仍然可以作为片段的提供者继续参与到以后的部署过程中。图4所示的各步骤所描述的仅仅是一种可能的实施方式,旨在说明本发明的精神和实质,根据具体的情况,各步骤可以被适当修改、拆分或组合。图5是图4所述的方法的一个实施例的示意流程图,其中假设所涉及的大规模服务器集群包括一个中心部署服务器和N个应用服务器,例如N可以是2000以上,甚至超过10000。
如图5中所示,在步骤S10,开始启动应用部署。在步骤S 11,大规模服务器集群的中心部署服务器把一个应用的部署包切分成N个应用部署片段。本领域技术人员可以根据实际情况(例如集群中需要部署的应用服务器数量或安装包大小)按照各种标准将应用的部署包切分成N个应用部署片段。例如,可以将一个应用的部署包按照固定大小切分成N个部署片段,通过切分得到的部署片段也可称为“分片”。中心部署服务器将将要部署的N个应用服务器一一对应到这N个片段。例如,中心部署服务器可以根据将要部署的各应用服务器的连接状态、负载、IP地址、时间以及机器名中的一个或任意组合计算出的随机数或者哈希值,将各应用服务器一一对应到不同的具体片段。比如,应用服务器I对应于第E个片段,应用服务器2对应于第F个片段,应用服务器3对应于第H个片段。然后,中心部署服务器向这N个应用服务器发送包含上述对应关系的拉取指令,通知或邀请这N个应用服务器到中心部署服务器去拉取已经拆分好的应用部署片段。在步骤S12,各应用服务器在接收到拉取指令之后,自动启动用于拉取其指定片段的相关进程。然后,各应用服务器分别到中心部署服务器拉取片段,并可以获得该应用的部署包的MD5码。比如,应用服务器I拉取了第E个片段,应用服务器2拉取了第F个片段,应用服务器3拉取了第H个片段。每一个应用服务器一旦成功拉取完所部署的一个片段,就向中心部署服务器报告关于该片段的片段信息,从而中心部署服务器可以实时统计各应用服务器已获取的片段的片段信息。应用服务器所报告的片段信息包括用于拉取该片段所需要的信息。本领域技术人员可以根据实际情况或各种需要,按照各种标准来配置片段的片段信息。例如,片段的片段信息可以包括所述片段的地址以及该片段的代号,例如,所拉取片段的标识、所拉取片段备存储在当前应用服务器上的目录路径、以及当前应用服务器的地址等信息。然后,在步骤S13,各应用服务器到中心部署服务器上获取各自所需要的其它部署片段的路径。中心部署服务器可以根据应用服务器所需要的片段当前所在的应用服务器的连接状态、负载、IP地址、时间以及机器名中的一个或任意组合计算出的随机数或者哈希值,为应用服务器提供所需要的片段的片段路径。例如,可以将负载较轻的应用服务器作为优先拉取路径,以便使部署时负载分布均匀。
然后,在步骤S14,各应用服务器根据中心部署服务器提供的片段路径到其他应用服务器拉取所需要的部署片段。如,应用服务器I拉取了第E个片段,应用服务器2拉取了第F个片段,应用服务器3拉取了第H个片段。当应用服务器I从中心部署服务器获得了片段F、H的片段信息后,就可以从应用服务器2、3上分别拉取片段F、H。然后,在步骤S15,每一个应用服务器一旦成功拉取完一个片段就向中心部署服务器报告各自的关于该片段的片段信息。也就是说,在整个部署期间,中心部署服务器一直实时统计汇总各应用服务器反馈的各自的关于当前已经拉取的片段的片段信息,并整理,以便于尚未部署完毕的应用服务器查询使用。应用服务器分别从中心部署服务器获得尚未拉取的其它片段的片段信息,并根据该信息从其它应用服务器拉取自己尚未拉取的其它片段。作为另一个实施例,中心部署服务器为应用服务器提供的所需要的片段的路径可以包括所述中心部署服务器自身,即,在步骤S13中,中心部署服务器首次部署完毕所切分的片段之后,仍然可以作为片段的 提供者继续参与到以后的部署过程中,在条件适当的情况下为合适的应用服务器提供一定量的片段。其中,在步骤S16,应用服务器判断是否已经拉取完将要部署的应用的部署包的所有片段。如果判断的结果为尚未拉取完该应用的部署包的所有片段,就重复进行上述步骤S13至S16,以从其它应用服务器拉取自己尚未拉取的片段。同时,本领域普通技术人员可以理解,图5中的步骤S11、S12( S卩,在步骤Sll中中心部署服务器切分部署包并指定对应的应用服务器,在步骤S12中应用服务器按照对应关系拉取所切分的片段。)也可以按照图4中的步骤S1、S2那样有另一种实施方式。简言之,在步骤Sll只切分部署包,而在步骤S12中,在应用服务器拉取片段的过程中让应用服务器与所切分的片段对应。如果应用服务器在步骤S16判断已拉取完该应用的部署包的所有片段,那么该应用服务器就在步骤S17将该应用的部署包的所有片段拼合成一个完整的部署包,并校验该应用的部署包的MD5值,从而完成了在该应用服务器上的应用部署。最终,通过图5中步骤SlO至步骤S17的过程,可以以极快的速度平稳完成集群中所有应用服务器的应用部署。图6是图4所述的方法的另一个实施例的示意流程图。图6与图5的不同之处在于,在步骤S21,中心部署服务器将应用部署包仅拆分成M个片段并向所有N个应用服务器发送拉取指令,其中M < N,且M为大于I的自然数,例如,N可以超过10000,M可以是几十、几百或几千,预先指定M个应用服务器可以实际拉取到这M个片段,例如,中心部署服务器可以根据将要部署的应用服务器的连接状态、负载、IP地址、时间以及机器名中的一个或任意组合计算出的随机数或者哈希值,指定M个将要部署的应用服务器;以及在步骤S22,由M个应用服务器去拉取所切分的片段,根据一个实施例,在所有N个应用服务器中,预先指定的M个应用服务器接收到拉取指令后到中心部署服务器分别拉取一个不同的片段,这时,这M个应用服务器之外的其它应用服务器暂不从中心服务器拉取片段,这M个应用服务器在分别拉取完一个不同的片段之后向中心部署服务器报告关于该片段的片段信息。接下来的步骤与图5中一样,由于所有N个应用服务器都收到了拉取指令,所以会不停向中心服务器请求并获取所需要的片段的路径。然后所有N个应用服务器会执行与图5中S13至S17相同的步骤S23至S27,从而分别拉取各自所需要的片段。最终,通过图6中步骤S20至步骤S27的过程,可以以极快的速度平稳完成集群中所有应用服务器的应用部署。同时,本领域普通技术人员可以理解,图6中的步骤S21、S22(在步骤S21中中心部署服务器切分部署包并指定M个将要部署的应用服务器与所切分的M个片段的对应关系,在步骤S22中应用服务器按照对应关系拉取所切分的片段。)也可以按照图4中的SI、S2那样有不同的实施方式。简言之,在步骤S21只切分部署包,而在步骤S22中在应用服务器拉取片段的过程中让M个将要部署的应用服务器与所切分的M个片段对应,即,在步骤S21中并不具体指定由哪M个应用服务器拉取片段,而是在步骤S22中,在应用服务器到中心部署服务器拉取片段的过程中,指定M个应用服务器来拉取片段。例如,可以按前M个应用服务器连接到中心部署服务器的连接先后次序依次拉取所切分的片段,或者按照负载均衡原则,例如负载较轻的M个应用服务器优先拉取所切分的片段,或者按IP地址、机器名等 参数分片划分出M个代表应用服务器以便使部署时负载分布均匀。与图5的实施例相比,图6的实施例适合于处理更大规模的服务器集群,这是因为,尽管集群中的应用服务器总数N很大,但是可以选择将应用的部署包切分成合适大小的M块,M可以远小于N,这样,就可以使部署过程以缓和的方式开始,从而能够进一步避免初始拉取时可能产生的网络拥挤。通过上面结合图3至图6对本申请的实现大规模服务器集群应用快速部署的方法的实施例的描述,可以看到,由于本申请所针对的大规模服务器集群中的应用服务器的数目为成千上万,而每一个应用服务器都可以作为一个部署服务器向其它应用服务器分发自己已经拉取的应用部署包的片段,从而与传统的C/S架构的部署技术相比,大大减轻了部署服务器的性能负载。并且由于各应用服务器可以同时向多个同级的应用服务器并行地拉取不同的片段,成许多倍地加快了从部署服务器向应用服务器分发应用部署包的速度和效率。而且,集群中的应用服务器越多,部署得也越快。这样一来,就可以从基本上消除部署服务器的处理瓶颈和网络资源瓶颈。采用本申请的实现大规模服务器集群应用快速部署的方法、集群及装置,在网络稳定的情况下,可以做到应用部署的时间即发布时间几乎与集群内的应用服务器数量无关,部署成千上万个应用服务器的时间与目前部署一至两个应用服务器所需要的时间几乎相等。而且,本申请的大规模服务器集群应用快速部署的方法也无需如传统的分层分发技术的C/S架构那样维护大量的分层部署节点。另外,由于每个应用服务器上的用于拉取部署包的代码(即进程)是一致的,因此还降低了开发和维护的难度。虽然已参照典型实施例描述了本申请,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本申请能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
权利要求
1.一种大规模服务器集群应用部署方法,所述方法包括 步骤I:所述大规模服务器集群中的中心部署服务器将一个应用的部署包切分成多个片段,并将切分后的多个片段部署于所述大规模服务器集群中的多个应用服务器上;以及步骤2 :各个所述应用服务器在被部署完所述部署包的所有片段后,将所述所有片段拼合成一个完整的部署包。
2.根据权利要求I所述的方法,其中,所述步骤I包括 步骤111 :所述大规模服务器集群中的中心部署服务器将所述一个应用的部署包切分成所述多个片段之后,将所述切分后的多个片段分别发送至相应应用服务器上; 步骤112 :所述应用服务器从所述中心部署服务器上获取所需要的其它片段的路径;以及 步骤113 :所述应用服务器按照所获取的路径去拉取所需要的其它片段,然后向所述中心部署服务器报告关于所述其它片段的片段信息。
3.根据权利要求I所述的方法,其中,所述步骤I包括 步骤121 :在所述步骤I中,所述大规模服务器集群中的中心部署服务器将所述一个应用的部署包切分成所述多个片段之后,向应用服务器发送拉取指令; 步骤122 :所述应用服务器接收到所述拉取指令后到所述中心部署服务器拉取片段; 步骤123 :所述应用服务器从所述中心部署服务器上获取所需要的其它片段的路径;以及 步骤124 :所述应用服务器按照所获取的路径去拉取所需要的其它片段,然后向所述中心部署服务器报告关于所述其它片段的片段信息。
4.根据权利要求2所述的方法,其中, 在所述步骤113之后还包括以下判断步骤 所述应用服务器判断是否已拉取完所述部署包的所有片段,如果判断结果为尚未拉取完所有片段,就返回到所述步骤112,如果判断结果为已经拉取完所有片段,则进入所述步骤2。
5.根据权利要求3所述的方法,其中, 在所述步骤124之后还包括以下判断步骤 所述应用服务器判断是否已拉取完所述部署包的所有片段,如果判断结果为尚未拉取完所有片段,就返回到所述步骤123,如果判断结果为已经拉取完所有片段,则进入所述步骤2。
6.根据权利要求2所述的方法,其中, 在所述步骤111中,所述中心部署服务器将所切分的多个片段与所有所述应用服务器一一对应,并将切分后的多个片段分别发送至所有所述应用服务器中相应应用服务器上。
7.根据权利要求2所述的方法,其中, 在所述步骤111中,所述中心部署服务器将所切分的多个片段与部分所述应用服务器一一对应,并将切分后的多个片段分别发送至所有所述应用服务器中相应应用服务器上。
8.根据权利要求3所述的方法,其中, 在所述步骤121中,所述中心部署服务器使所切分的多个片段与所有所述应用服务器具有一一对应的对应关系,并根据所述对应关系向所有所述应用服务器发送拉取指令,并且 在所述步骤122中,所有所述应用服务器接收到所述拉取指令后,根据所述对应关系到所述中心部署服务器分别拉取一个不同的片段。
9.根据权利要求3所述的方法,其中, 在所述步骤121中,所述中心部署服务器使所切分的多个片段与部分所述应用服务器具有一一对应的对应关系,并根据所述对应关系向所述部分所述应用服务器发送拉取指令,并且 在所述步骤122中,所述部分所述应用服务器接收到所述拉取指令后,根据所述对应关系到所述中心部署服务器分别拉取一个不同的片段。
10.根据权利要求3所述的方法,其中, 在所述步骤122中,所述中心部署服务器在所述应用服务器拉取片段的拉取过程中将所切分的多个片段与所有所述应用服务器一一对应。
11.根据权利要求3所述的方法,其中, 在所述步骤122中,所述中心部署服务器在所述应用服务器拉取片段的拉取过程中将所切分的多个片段与部分所述应用服务器一一对应。
12.根据权利要求6或7所述的方法,其中, 在所述步骤111中,所述中心部署服务器根据所述应用服务器的连接状态、负载、IP地址、时间以及机器名中的一个或任意组合计算出的随机数或者哈希值,将所述相应应用服务器与所述多个片段一一对应。
13.根据权利要求8或9所述的方法,其中, 在所述步骤121中,所述中心部署服务器根据所述应用服务器的连接到所述中心部署服务器的连接先后次序、负载、IP地址、机器名中的一个或任意组合,将所述应用服务器与所述多个片段一一对应。
14.根据权利要求2所述的方法,其中, 在所述步骤112中,所述中心部署服务器根据所述所需要的其它片段当前所在的应用服务器的连接状态、负载、IP地址、时间以及机器名中的一个或任意组合计算出的随机数或者哈希值,提供所述所需要的其它片段的路径。
15.根据权利要求3所述的方法,其中, 在所述步骤123中,所述中心部署服务器根据所述所需要的其它片段当前所在的应用服务器连接到所述中心部署服务器的连接先后次序或负载均衡原则,提供所述所需要的其它片段的路径。
16.根据权利要求2或3所述的方法,其中, 所述片段的片段信息包括所述片段的地址以及该片段的代号。
17.根据权利要求I所述的方法,其中, 在所述步骤I或步骤2中,所述应用服务器获得所述一个应用的部署包的MD5码,以及 在所述步骤2中,所述应用服务器使用所述MD5码对所拼合成的部署包进行校验。
18.一种大规模服务器集群,所述大规模服务器集群包括 一个中心部署服务器和多个应用服务器,其中, 所述中心部署服务器用于将一个应用的部署包切分成多个片段,并将该切分后的多个片段部署于所述多个应用服务器上;以及 各个所述应用服务器 在被部署完所述部署包的所有片段后,将所述所有片段拼合成一个完整的部署包。
全文摘要
一种大规模服务器集群应用部署方法及相应的大规模服务器集群,其中所述方法包括步骤1所述大规模服务器集群中的中心部署服务器将一个应用的部署包切分成多个片段,并将切分后的多个片段部署于所述大规模服务器集群中的多个应用服务器上;以及步骤2各个所述应用服务器在被部署完所述部署包的所有片段后,将所述所有片段拼合成一个完整的部署包。本发明减轻了部署服务器性能负载,加快了从部署服务器向应用服务器分发应用部署包的速度和效率,消除部署服务器的处理和网络资源瓶颈,做到应用部署的时间与集群内的应用服务器数量无关,也无需如传统的分层分发技术的C/S架构那样维护大量的分层部署节点,还降低了开发和维护的难度。
文档编号H04L29/06GK102882900SQ20111019334
公开日2013年1月16日 申请日期2011年7月11日 优先权日2011年7月11日
发明者刘志达, 魏玉璋 申请人:阿里巴巴集团控股有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1