一种信息处理方法及装置与流程

文档序号:15099078发布日期:2018-08-04 15:17阅读:126来源:国知局

本申请涉及通信领域,尤其涉及一种信息处理方法及装置。



背景技术:

随着云计算技术的不断成熟,信息技术(information technology,IT)领域与通讯技术(communication technology,CT)领域相互渗透融合,CT领域也提出了云化战略。云化演进中有两个重要的环节就是软件全分布化和运维全自动化。在现代分布式系统中,有大量进程分开部署在多台物理分离的主机上。很多上层功能都需要多个进程合作才能完成,这就需要这些进程间能够正确协同,例如互斥、主备协同、顺序协同、事件协同等。因此一个分布式系统中一般都存在一个提供多模块协同功能的服务。传统上这个服务是中心化的,也就是由单个进程来完成,称为中心进程,这个中心进程通过远程过程调用(remote procedure call,RPC)接口向其他进程提供服务。但随着云化演进的进行,整个系统中的主机数越来越多,中心进程的负载量过大,可靠性降低,中心化的协同服务已经无法满足需求,因此协同服务也需要分布化。

现有方案中,分布式协同服务为单层结构,一般采用人工判断加整体启停的方式部署和维护。例如,维护人员判断需要增加或减少协同服务进程时,必须先停止当前所有服务进程,更新每个进程的配置文件,然后重新启动所有进程。

在上述由人工部署和维护分布式协同服务的方案中,由于配置更新频繁且易出错,需要对所有协同服务的进程整体停止然后重新启动,导致协同服务中断,可靠性降低。



技术实现要素:

本申请实施例提供了一种信息处理方法及装置,用于动态更新协同服务的配置,避免协同服务中断,提高了协同服务的可靠性。

本申请第一方面提供了一种信息处理方法,所述方法应用于分布式系统,所述分布式系统包括采集层、管理层和服务层,其中,所述采集层包含N个采集模块,所述管理层包含管理模块,所述服务层包含M个服务模块,所述N为大于0的整数,所述M为大于0的整数,所述方法包括:所述管理模块接收所述N个采集模块发送的第一消息;所述管理模块根据所述第一消息部署所述M个服务模块,其中,所述M个服务模块中的任一个服务模块与所述N个采集模块中的一个采集模块具有对应关系;当所述管理模块获取到服务更新指令时,所述管理模块根据所述服务更新指令进行配置更新处理。本申请实施例中,通过增加动态配置指令,能够确保在不中断协同服务的情况下实现配置的动态更新,提高了协同服务的可靠性,并且通过一致性算法保证服务状态更新的一致性,进一步确保配置更新的一致性。

在一种可能的设计中,在本申请实施例第一方面的第一种实现方式中,所述根据所述服务更新指令进行配置更新处理,包括:所述管理模块根据所述服务更新指令向目标服务模块发送动态配置指令,以使得所述目标服务模块向剩余服务模块广播所述动态配置指令,所述目标服务模块为所述M个服务模块中的任一个服务模块,所述剩余服务模块为除去所述目标服务模块后剩余的M-1个服务模块,所述动态配置指令用于所述M个服务模块确定待启用的服务模块。细化了管理模块调整服务模块配置的过程,增加了本申请实施例的实现方式。

在一种可能的设计中,在本申请实施例第一方面的第二种实现方式中,所述方法还包括:所述管理模块停止空闲的服务模块,所述空闲的服务模块为所述M个服务模块中不需要启用的服务模块。增加了停止空闲的服务模块的过程,避免了资源的浪费,并使本申请实施例在步骤上更完善。

在一种可能的设计中,在本申请实施例第一方面的第三种实现方式中,在所述管理模块根据所述第一消息部署所述M个服务模块之后,在所述管理模块根据所述服务更新指令进行配置更新处理之前,所述方法还包括:所述管理模块对所述M个服务模块上的进程进行监控,以得到监控结果;若所述监控结果满足更新条件,则所述管理模块获取所述服务更新指令。增加了对服务模块监控管理的过程,增加了本申请实施例的实现方式。

在一种可能的设计中,在本申请实施例第一方面的第四种实现方式中,所述第一消息包括所述N个采集模块所在节点的标识,所述管理模块根据所述第一消息部署所述M个服务模块,包括:所述管理模块根据所述N个采集模块所在节点的标识确定M个服务模块对应的节点位置;所述管理模块根据所述节点位置部署所述M个服务模块。提供了具体的部署方式,增加了本申请实施例的可实现性和可操作性。

在一种可能的设计中,在本申请实施例第一方面的第五种实现方式中,所述方法还包括:若超过M/2个服务模块为不可用的,则所述管理模块将所述M个服务模块中的P个幸存服务模块进行配置重启,所述P满足条件P≤M,且P为大于0的整数,所述幸存服务模块为可用的服务模块;所述管理模块重新部署K个服务模块,其中,所述M为偶数时,所述K满足条件K=M/2,所述M为奇数时,所述K满足条件K=(M+1)/2,所述K为大于0的整数。重新部署的第一阶段启动的服务模块不超过服务层的服务模块的总数的一半,确保第一阶段的服务模块不能独自形成集群。

在一种可能的设计中,在本申请实施例第一方面的第六种实现方式中,所述方法还包括:若满足条件P+K<M,则所述管理模块判断所述P+K个服务模块是否可用;若所述P+K个服务模块可用,则所述管理模块重新部署S个服务模块,所述S满足条件S+P+K=M,所述S为大于0的整数。提供了再超过M/2个服务模块为不可用时,进行故障恢复的过程,确保了恢复的数据的完整性。

在一种可能的设计中,在本申请实施例第一方面的第七种实现方式中,所述管理模块由N+1个采集模块根据预置的选举算法选举得到。提供了确定管理模块的过程,使本申请实施例在步骤上更完善。

在一种可能的设计中,在本申请实施例第一方面的第八种实现方式中,所述根据所述服务更新指令进行配置更新处理,包括:所述管理模块根据所述服务更新指令向目标服务模块发送动态配置指令,以使得所述目标服务模块向剩余服务模块广播所述动态配置指令,所述目标服务模块为M+L个服务模块中的任一个服务模块,所述剩余服务模块为除去所述目标服务模块后剩余的M+L-1个服务模块,所述动态配置指令用于所述M+L个服务模块确定待启用的服务模块。细化了管理模块调整服务模块配置的过程,增加了本申请实施例的实现方式。

本申请第二方面提供了一种管理模块,所述管理模块应用于分布式系统,所述分布式系统包括采集层、管理层和服务层,其中,所述采集层包含N个采集模块,所述管理层包含管理模块,所述服务层包含M个服务模块,所述N为大于0的整数,所述M为大于0的整数,所述管理模块包括:接收单元,用于接收所述N个采集模块发送的第一消息;第一部署单元,用于根据所述第一消息部署所述M个服务模块,其中,所述M个服务模块中的任一个服务模块与所述N个采集模块中的一个采集模块具有对应关系;处理单元,当所述管理模块获取到服务更新指令时,用于根据所述服务更新指令对所述M个服务模块进行配置更新处理。本申请实施例中,通过增加动态配置指令,能够确保在不中断协同服务的情况下实现配置的动态更新,提高了协同服务的可靠性,并且通过一致性算法保证服务状态更新的一致性,进一步确保配置更新的一致性。

在一种可能的设计中,在本申请实施例第二方面的第一种实现方式中,所述处理单元具体用于:根据所述服务更新指令向目标服务模块发送动态配置指令,以使得所述目标服务模块向剩余服务模块广播所述动态配置指令,所述目标服务模块为所述M个服务模块中的任一个服务模块,所述剩余服务模块为除去所述目标服务模块后剩余的M-1个服务模块,所述动态配置指令用于所述M个服务模块确定待启用的服务模块。细化了管理模块调整服务模块配置的过程,增加了本申请实施例的实现方式。

在一种可能的设计中,在本申请实施例第二方面的第二种实现方式中,所述管理模块还包括:停止单元,用于停止空闲的服务模块,所述空闲的服务模块为所述M个服务模块中不需要启用的服务模块。增加了停止空闲的服务模块的过程,避免了资源的浪费,并使本申请实施例在步骤上更完善。

在一种可能的设计中,在本申请实施例第二方面的第三种实现方式中,所述管理模块还包括:监控单元,用于对所述M个服务模块上的进程进行监控,以得到监控结果;获取单元,若所述监控结果满足更新条件,则用于获取所述服务更新指令。增加了对服务模块监控管理的过程,增加了本申请实施例的实现方式。

在一种可能的设计中,在本申请实施例第二方面的第四种实现方式中,所述第一消息包括所述N个采集模块所在节点的标识,所述第一部署单元具体用于:根据所述N个采集模块所在节点的标识确定M个服务模块对应的节点位置;根据所述节点位置部署所述M个服务模块。提供了具体的部署方式,增加了本申请实施例的可实现性和可操作性。

在一种可能的设计中,在本申请实施例第二方面的第五种实现方式中,所述管理模块还包括:重启单元,若超过M/2个服务模块为不可用的,则用于将所述M个服务模块中的P个幸存服务模块进行配置重启,所述P满足条件P≤M,且P为大于0的整数,所述幸存服务模块为可用的服务模块;第二部署单元,用于重新部署K个服务模块,其中,所述M为偶数时,所述K满足条件K=M/2,所述M为奇数时,所述K满足条件K=(M+1)/2,所述K为大于0的整数。重新部署的第一阶段启动的服务模块不超过服务层的服务模块的总数的一半,确保第一阶段的服务模块不能独自形成集群。

在一种可能的设计中,在本申请实施例第二方面的第六种实现方式中,所述管理模块还包括:判断单元,若满足条件P+K<M,则用于判断所述P+K个服务模块是否可用;第三部署单元,若所述P+K个服务模块可用,则用于重新部署S个服务模块,所述S满足条件S+P+K=M,所述S为大于0的整数。提供了再超过M/2个服务模块为不可用时,进行故障恢复的过程,确保了恢复的数据的完整性。

在一种可能的设计中,在本申请实施例第二方面的第七种实现方式中,所述管理模块由N+1个采集模块根据预置的选举算法选举得到。提供了确定管理模块的过程,使本申请实施例在步骤上更完善。

在一种可能的设计中,在本申请实施例第二方面的第八种实现方式中,所述管理模块重新部署了L个服务模块,所述L为大于0的整数,所述处理单元具体用于:根据所述服务更新指令向目标服务模块发送动态配置指令,以使得所述目标服务模块向剩余服务模块广播所述动态配置指令,所述目标服务模块为M+L个服务模块中的任一个服务模块,所述剩余服务模块为除去所述目标服务模块后剩余的M+L-1个服务模块,所述动态配置指令用于所述M+L个服务模块确定待启用的服务模块。细化了管理模块调整服务模块配置的过程,增加了本申请实施例的实现方式。

本申请第三方面提供了一种管理功能实体,所述管理功能实体用于承载管理模块,所述管理模块为上述第二方面中任意一种实现方式中的管理模块。

本申请第四方面提供了一种分布式系统,包括:采集层、管理层和服务层,所述采集层包含N个采集模块,所述管理层包含管理模块,所述服务层包含M个服务模块,所述N为大于0的整数,所述M为大于0的整数;所述采集模块用于采集所述采集模块所在节点的节点信息,维护并上报所述节点信息;所述管理模块用于部署所述服务模块,实时监控所述服务模块上运行的进程状态得到监控结果,并根据所述监控结果动态调整所述服务模块;所述服务模块用于为在所述服务模块上运行的进程提供服务。

在一种可能的设计中,在本申请实施例第四方面的第一种实现方式中,所述采集模块还用于根据预置的选举算法选举得到所述管理模块。

在一种可能的设计中,在本申请实施例第四方面的第二种实现方式中,所述管理模块还用于判断所述服务模块是否可用。

在一种可能的设计中,在本申请实施例第四方面的第三种实现方式中,所述节点信息包括节点类型、节点标识和节点容量。

本申请的第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请的第六方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请的第七方面提供了一种芯片系统,该芯片系统包括处理器,用于支持管理功能实体实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存管理功能实体必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

附图说明

图1为本申请实施例应用的网络架构的示意图;

图2为申请实施例信息处理方法的一个实施例示意图;

图3为申请实施例信息处理方法的另一个实施例示意图;

图4为本申请实施例中管理模块的一个实施例示意图;

图5为本申请实施例中管理模块的另一个实施例示意图;

图6为本申请实施例中管理功能实体的一个实施例示意图;

图7为本申请实施例中管理功能实体的另一个实施例示意图;

图8为本申请实施例中管理功能实体的另一个实施例示意图。

具体实施方式

本申请实施例提供了一种信息处理方法及装置,用于动态更新协同服务的配置,避免协同服务中断,提高了协同服务的可靠性。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例进行描述。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请实施例可应用于如图1所示的分布式系统,在本申请实施例中,分布式系统在逻辑上划分为三个逻辑层,分别为位于最底层的第一层,位于中间的第二层,和位于最上方的第三层,其中第三层为用户提供服务。各个逻辑层的功能不同,本申请中根据各个逻辑层的逻辑功能分别命名,第一层为采集层,第二层为管理层,第三层为服务层。具体的,采集层包含N个采集模块,管理层包含一个管理模块,服务层包含M个服务模块,所述N为大于0的整数,所述M为大于0的整数,采集层用于采集各个采集模块所在的各个节点的节点信息,并上报给管理层;管理层用于处理接收到的节点信息并管理服务层,服务层用于为运行在各个服务模块上的进程提供服务。可选的,在该分布式系统中,采集模块还用于根据预置的选举算法选举得到管理模块。在本申请实施例中,管理模块接收N个采集模块发送的第一信息;管理模块根据第一信息部署M个服务模块,其中,M个服务模块中的任一个服务模块与N个采集模块中的一个采集模块具有对应关系;当管理模块接收到服务更新指令时,管理模块根据服务更新指令对M个服务模块进行配置更新处理。

为便于理解,下面对本申请实施例的具体流程进行描述,请参阅图2,本申请实施例中信息处理方法的一个实施例包括:

201、采集模块集群分别采集各个模块所在节点的节点信息。

采集模块集群包含N+1个采集模块,各个采集模块分别采集各个采集模块所在节点的节点信息,该节点信息可以包括节点类型,例如,具体可以包括计算节点、管理节点、存储节点或服务节点等;节点信息还可以包括节点状态,具体的,节点状态可以包括“有状态”和“无状态”两种,其中,当节点状态是“无状态”时,这类节点不会存储自己的中间状态信息,一般情况下是转发请求而已,不会存储中间信息;当节点状态是“有状态”时,这类节点需要先读取节点上的持久化的数据,才能开始服务。本申请实施例中,以一个服务器作为一个节点进行说明。

节点信息还可以包括节点策略,例如,反亲和策略等,其中,反亲和策略为服务层的一种属性,反亲和性主要是出于高可靠性考虑,尽量分散部署实例(即模块),某个节点故障的时候,对应用的影响只是N分之一或者只是一个实例。在部署服务模块的时候,尽量分散部署到物理上关联小的节点上,避免一个服务模块故障导致另一个服务模块也发生故障,使得当任何一个节点故障时,不影响其他节点,该发生故障的节点上部署的服务模块不可用,部署在其他节点上的服务模块仍然可用。举例说明,有四个服务模块,分别为服务模块1、服务模块2、服务模块3、服务模块4,将4个服务模块分别部署在服务器1、服务器2、服务器3、服务器4上,此时,服务模块1部署在服务器1上,服务模块2部署在服务器2上,服务模块3部署在服务器3上,服务模块4部署在服务器5上,若服务器1发生故障,则部署在服务器1上的服务模块1不可用,但是部署在其他服务器上的服务模块是可用的。节点信息还可以包括节点容量和框槽号等,具体此处不做限定。

需要说明的是,当采集模块的数量很多时,而节点较少,不能满足一一对应部署的关系,那么采集模块中也可以有多个采集模块部署在同一节点上,例如,采集模块1部署在服务器1上,采集模块2部署在服务器2上,采集模块3和采集模块4同时部署在服务器3上,相对于单个节点上部署单个采集模块的方案,可靠性降低,具体此处不做限定。

202、采集模块集群根据预置的选举算法选举得到管理模块。

采集模块集群中包含N+1个采集模块,采集模块集群根据预置的选举算法选举得到一个管理模块。

具体的,N+1个采集模块根据预置的选举算法选举得到一个目标模块,作为管理模块。本申请实施例中都以Paxos算法为例进行说明,例如,每个采集模块通过Paxos算法进行投票,来决议一个事情,当超过(N+1)/2个模块都投票通过时,Paxos算法产生一个唯一结果的决议,并通知各个采集模块维护这个信息。例如,通过Paxos算法选择一个主(Master)模块,首先产生一个关于某个采集模块希望当Master模块(即争抢Master地位)的投票,然后各个采集模块给出反馈,根据各个采集模块的投票结果,最终确定一个Master模块。在该Master模块作为管理模块。

可以理解的是,Master模块可以发生变化,当一个采集模块选举为Master模块后,可以在一个租期(lease)内作为Master模块,如果lease期到了则再次去申请lease,如果lease期到了,并且网络出现故障,这时Master模块可以主动下线,让其他模块去竞选Master模块。例如,三个采集模块A、B、C,简称为A模块、B模块和C模块,经过第一轮选举之后,A模块成为Master模块,它获得了10秒的租期,假设当前时间是00:00:00,那么A模块的Master地位可以用到00:00:10,当时间到达00:00:10时,三个模块A、B、C会重新进行Master选举,每个采集模块都有可能成为Master模块,如果这时候A模块的网络断了,不能联通B、C了,那么A会自动下线,不再去竞争成为Master模块。

需要说明的是,在各个采集模块竞争成为Master模块时,可能因为模块数量太多,冲突概率较大,可以通过在数据库中增加标识信息,标识是否有其他模块正在争抢成为Master模块,例如增加字段状态(Status)字段,如果是,则可以暂停等一下,然后在尝试,如果该模块成功抢到了Master地位(即成为Master模块),通过标识信息则会省去很多模块冲突的概率。

在一种可能的极端情况下,因为竞争Master模块的时间和Master模块的租期(lease)时间都是固定的,则可能出现“时间轴共振”的现象,例如,一直在竞争Master模块但是一直失败,然后一直重试。所有的采集模块在同一时刻都在做同样的事情。此时,可以通过增加时间随机性解决该问题,如尝试抢占Master连续失败,则根据设置的时长进入休眠状态,抵消共振,当休眠结束后,再重新竞争Master模块。

203、采集模块集群向管理模块发送第一消息。

采集模块集群向管理模块发送第一消息。具体的,此时采集模块集群中包含N个采集模块,N个采集模块将各个采集到的节点信息携带在第一消息中,并将该第一消息发送给选举出来的管理模块。

需要说明的是,这里的第一消息可以是一个消息,也可以是N个消息的总称。例如,每一个采集模块在获取到节点信息后,都可以向管理模块发送第一消息,第一消息中携带有该采集模块所在的节点的节点信息;或者,N个采集模块将各自所在节点的节点信息汇总,携带在一个消息(第一消息)中,通过该第一消息同时将所有节点的节点信息都发送给管理模块;还可以是预置个数的节点信息同时携带在一个消息中,预置个数可以根据实际情况进行设置,例如,每5个节点信息携带在一个消息中。

可以理解的是,N个采集模块可以按照预先设置的时间间隔,周期性的向管理模块发送该第一消息。

204、管理模块根据第一消息部署M个服务模块。

管理模块根据第一信息部署M个服务模块,其中,M个服务模块中的任一个服务模块与N个采集模块中的一个采集模块具有对应关系,即每一个服务模块都对应有一个采集模块,而采集模块不一定对应部署有服务模块。

需要说明的是,管理模块从接收到的第一消息中提取节点信息,根据每个节点信息对各个采集模块所在的节点进行筛选,选择合适的节点部署服务模块。每个服务模块与其对应的采集模块部署在同一个节点上。

需要说明的是,在部署M个服务模块的时候要考虑到节点策略,例如,反亲和策略,选择反亲和性高的节点来部署。反亲和性与各个节点的物理归属有关,比如两个节点属于同一块单板,那么这两个节点的反亲和性就较低,因为拔掉这块单板会导致两个节点同时故障;类似的,如果两个节点属于同一机架,那么和属于不同机架的节点相比反亲和性也较低。部署服务模块时就要考虑选择反亲和性较高的节点来提升可靠性。

205、管理模块对M个服务模块上的进程进行监控,以得到监控结果。

管理模块对M个服务模块上的进程进行监控,以得到监控结果。

具体的,M个服务模块上运行有协同服务进程,本申请实施例中,以每一个服务模块上都运行一个进程为例进行说明,管理模块对每一个服务模块上运行的进程进行监控,对进程进行生命周期管理,得到监控结果。

206、管理模块获取服务更新指令。

管理模块根据监控结果判断是否需要进行调整,若监控结果满足更新条件,则管理模块获取服务更新指令。该服务更新指令可以用于指示增加L个新的服务模块,或用于指示减少L个服务模块。本实施例以增加L个新的服务模块为例进行说明。

可以理解的是,该服务更新指令可以是管理模块自己生成,也可以是由人工发送,本申请实施例中,以管理模块生成该服务更新指令为例进行说明。

举例说明,对于M个服务模块而言,若超过M/2个服务模块或服务模块所在的节点发生故障,则管理模块确定分布式系统的协同服务不可用(即不能提供服务),需要对服务模块进行更新,管理模块接收服务更新指令,该服务更新指令中携带有新的部署策略和配置信息。

需要说明的是,用户也可以主动对服务模块进行调整,即主动向管理模块发送服务更新指令,以使得管理模块根据服务更新指令对分布式系统进行更新,满足用户的需求。

207、管理模块根据获取到的服务更新指令部署L个新的服务模块。

管理模块根据获取到的服务更新指令部署L个新的服务模块。其中,该服务更新指令指示了增加L个新的服务模块,L为大于零的整数。若该服务更新指令指示减少L个服务模块,则步骤207可以省略。

需要说明的是,部署的L个新的服务模块中的各个服务模块都与采集层中的一个采集模块对应,相互对应的采集模块和服务模块部署在同一个节点上。

208、管理模块根据服务更新指令向目标服务模块发送动态配置指令。

管理模块首先在服务层中所有服务模块中选择任意一个作为目标服务模块,其中,所述所有服务模块包括新增加的服务模块和原有的服务模块,再根据服务更新指令向目标服务模块发送动态配置指令,其中,该动态配置指令用于指示M+L个服务器模块确定待启用的服务模块。例如,该动态配置指令可以为一个指示信息,该指示信息用于指示将M+L个服务模块中的部分服务模块确定为待启用的服务模块,或者,该动态配置指令为一个配置信息,该配置信息中携带有待启用的服务模块的标识信息。

需要说明的是,目标服务模块为服务层中M+L个服务模块中的任意一个服务模块,具体选择方式可以是根据随机算法进行筛选,例如,遗传算法等,具体此处不做限定。

209、目标服务模块向剩余服务模块广播动态配置指令。

目标服务模块向剩余服务模块广播动态配置指令,剩余服务模块为除去该目标服务模块后剩余的(M+L-1)个服务模块。

若动态配置指令指示增加L个新的服务模块,则目标服务模块向服务层中的所有服务模块进行广播,此时的服务模块包括原有的M个服务模块和增加的L个新的服务模块;若动态配置指令中指示减少L个服务模块,则目标服务模块向服务层中的所有服务模块进行广播,此时的服务模块包括原有的M个服务模块,剩余服务模块为除去该目标服务模块后剩余的(M-1)个服务模块。

可以理解的是,本申请实施例及后续实施例中,当动态配置指令还可以指示增加L个新的服务模块,新的服务模块不属于原有服务层中的M个服务模块,本申请实施例中以动态配置指令指示增加L个新的服务模块为例进行说明,具体此处不做限定。

210、目标服务模块接收各个剩余服务模块发送的反馈信息。

目标服务模块接收各个剩余服务模块发送的反馈信息。具体的,每当目标服务模块向服务层中的任意一个其他模块发送动态配置指令之后,可以接收该模块发送的反馈信息,该反馈信息用于指示接收到动态配置指令。

211、若目标服务模块接收到超过半数的服务模块发送的反馈信息,则通知服务层中的所有服务模块执行动态配置指令。

目标服务模块判断接收到的反馈信息的数量是否超过预置数量,该预置数量为服务层中服务模块数量的一半;若目标服务模块接收到超过预置数量的服务模块发送的反馈信息,则通知服务层中的所有服务模块执行动态配置指令。

举例说明,如图3所示,服务层中包含3个服务模块,分别命名为服务模块a、服务模块b和服务模块c,在发送动态配置指令之前,管理模块先部署服务模块d,动态配置指令用于指示将服务模块a、服务模块b和服务模块c调整为服务模块b、服务模块c和服务模块d。其中,服务模块b被管理模块确定为目标服务模块,管理模块向服务模块b发送该动态配置指令,服务模块b在将接收到的动态配置指令广播给服务层中的服务模块a、服务模块c和服务模块d,分别接收服务模块a、服务模块c和服务模块d发送的反馈信息。其中,当接收到三个反馈信息时(此时服务层中的服务模块个数为4),通知服务模块a、服务模块b、服务模块c和服务模块d执行动态配置指令,将配置信息更改为服务模块b、服务模块c和服务模块d,以使得服务模块b、服务模块c和服务模块d为用户提供服务。在完成配置更新后,管理模块向服务模块a发送停止指令。

需要说明的是,若需要将服务模块a、服务模块b和服务模块c调整为服务模块b、服务模块c、服务模块d和服务模块e,其中,服务模块d和服务模块e为新增加的服务模块,则目标服务模块(服务模块b)接收到3个反馈信息时(此时服务层中的服务模块个数为5),通知服务模块a、服务模块b、服务模块c、服务模块d和服务模块e执行动态配置指令,即将服务模块a、服务模块b和服务模块c调整为服务模块b、服务模块c、服务模块d和服务模块e。

在完成动态配置命令的广播到执行这段时长内,服务模块需要新旧配置共同生效来保证数据的一致性,例如,如果仅仅旧配置起作用,即未接收到动态配置指令,更新可能不会同步到新配置的服务模块上;如果仅仅新配置起作用,即旧配置中的空闲的服务模块故障,动态配置指令执行失败的情况下可能无法无损恢复原有的旧配置。

212、管理模块停止空闲的服务模块。

管理模块停止空闲的服务模块,空闲的服务模块为M个服务模块中不需要启用的服务模块。

举例说明,当将服务模块a、服务模块b和服务模块c调整为服务模块b、服务模块c和服务模块d后,此时的服务模块a不再提供服务,即服务模块a为空闲的服务模块,管理模块将服务模块a停止。

本申请实施例中,通过增加动态配置指令,能够确保在不中断协同服务的情况下实现配置的动态更新,提高了协同服务的可靠性,并且通过一致性算法保证服务状态更新的一致性,进一步确保配置更新的一致性。

请参阅图4,本申请实施例中信息处理方法的另一个实施例包括:

401、采集模块集群分别采集各个模块所在节点的节点信息。

采集模块集群包含N+1个采集模块,各个采集模块分别采集各个采集模块所在节点的节点信息。

402、采集模块集群根据预置的选举算法选举得到管理模块。

采集模块集群中包含N+1个采集模块,采集模块集群根据预置的选举算法选举得到一个管理模块。

403、采集模块集群向管理模块发送第一消息。

采集模块集群向管理模块发送第一消息。具体的,此时采集模块集群中包含N个采集模块,N个采集模块将各个采集到的节点信息携带在第一消息中,并将该第一消息发送给选举出来的管理模块。

404、管理模块根据第一消息部署M个服务模块。

管理模块根据第一信息部署M个服务模块,其中,M个服务模块中的任一个服务模块与N个采集模块中的一个采集模块具有对应关系,即每一个服务模块都对应有一个采集模块,而采集模块不一定对应部署有服务模块。

405、管理模块对M个服务模块上的进程进行监控,以得到监控结果。

管理模块对M个服务模块上的进程进行监控,以得到监控结果。

406、管理模块获取服务更新指令。

管理模块根据监控结果判断是否需要进行调整。若监控结果满足更新条件,则管理模块获取服务更新指令。该服务更新指令可以用于指示增加L个新的服务模块,或用于指示减少L个服务模块。本实施例以减少L个服务模块为例进行说明。

407、管理模块根据服务更新指令向目标服务模块发送动态配置指令。

管理模块首先在服务层中M个服务模块中选择任意一个作为目标服务模块,再根据服务更新指令向目标服务模块发送动态配置指令,其中,该动态配置指令用于指示M个服务器模块确定M-L个待启用的服务模块。

408、目标服务模块向剩余服务模块广播动态配置指令。

目标服务模块向剩余服务模块广播动态配置指令,剩余服务模块为除去该目标服务模块后剩余的M-1个服务模块。

409、目标服务模块接收各个剩余服务模块发送的反馈信息。

目标服务模块接收各个剩余服务模块发送的反馈信息。具体的,每当目标服务模块向服务层中的任意一个其他模块发送动态配置指令之后,可以接收该模块发送的反馈信息,该反馈信息用于指示接收到动态配置指令。

410、若目标服务模块接收到超过半数的服务模块发送的反馈信息,则通知服务层中的所有服务模块执行动态配置指令。

目标服务模块判断接收到的反馈信息的数量是否超过预置数量,该预置数量为服务层中服务模块数量的一半;若目标服务模块接收到超过预置数量的服务模块发送的反馈信息,则通知服务层中的所有服务模块执行动态配置指令。

411、管理模块停止空闲的服务模块。

管理模块停止空闲的服务模块,空闲的服务模块为M个服务模块中不需要启用的服务模块。

步骤401至步骤406与步骤201至步骤206类似,步骤407至步骤411与步骤208至步骤212类似,此处不再赘述。

412、若服务层中超过半数服务模块都不可用,则管理模块将幸存的服务模块进行配置重启。

若服务层中超过半数服务模块都不可用,则管理模块将幸存的服务模块进行配置重启,即服务层包含M个服务模块,若超过M/2个服务模块为不可用的,则管理模块将M个服务模块中的P个幸存服务模块进行配置重启,P为大于0且小于M/2的整数。

举例说明,如图5所示,服务层包含7个服务模块,若其中5个服务模块发生故障,则剩余2个服务模块,即剩余2个幸存服务模块;将2个幸存服务模块配置重启。

413、管理模块重新部署第一阶段的服务模块。

管理模块重新部署第一阶段的服务模块。

具体的,管理模块重新部署K个服务模块,其中,所述M为偶数时,所述K满足条件K=M/2,所述M为奇数时,所述K满足条件K=(M+1)/2,所述K为大于0的整数。例如,当M为10时,K为5,当M为9时,K为5,当M为7时,K为4。

414、管理模块判断第一阶段的服务模块的个数和幸存服务模块的个数的总和是否小于服务层中原有的服务模块的总和。

管理模块判断第一阶段的服务模块的个数和幸存服务模块的个数的总和是否小于服务层中原有的服务模块的总和,即判断P+K的值是否小于M。

若小于,则执行步骤415。

415、管理模块重新部署第二阶段的服务模块。

管理模块重新部署第二阶段的服务模块。具体的,管理模块重新部署S个服务模块,以使得服务层的服务模块的达到原有的服务层的服务模块的总数,即S+P+K=M,S为大于0的整数。

举例说明,如图5所示,服务层的服务模块的总数为7,若其中的5个服务模块发生故障,即只要2个幸存的服务模块。此时将2个幸存的服务模块进行配置重启,然后重新部署第一阶段的服务模块,第一阶段的服务模块的数量为3个,管理模块判断部署第一阶段的服务模块后协同服务是否可用,若可用,则继续部署第二阶段的服务模块,第二阶段的服务模块的数量为2个。

本申请实施例中,通过增加动态配置指令,能够确保在不中断协同服务的情况下实现配置的动态更新,提高了协同服务的可靠性,并且增加了协同服务故障后的重部署方法,管理模块通过对新部署的服务模块的时序控制来确保服务数据的完整性。

上面对本申请实施例中信息处理方法进行了描述,下面对本申请实施例中的管理模块进行描述,请参阅图6,本申请实施例中管理模块的一个实施例包括:

管理模块应用于分布式系统,所述分布式系统包括采集层、管理层和服务层,其中,所述采集层包含N个采集模块,所述管理层包含管理模块,所述服务层包含M个服务模块,所述N为大于0的整数,所述M为大于0的整数,所述管理模块包括:

接收单元601,用于接收所述N个采集模块发送的第一消息;

第一部署单元602,用于根据所述第一消息部署所述M个服务模块,其中,所述M个服务模块中的任一个服务模块与所述N个采集模块中的一个采集模块具有对应关系;

处理单元603,当所述管理模块获取到服务更新指令时,用于根据所述服务更新指令对所述M个服务模块进行配置更新处理。

请参阅图7,本申请实施例中管理模块的另一个实施例包括:

接收单元701,用于接收所述N个采集模块发送的第一消息;

第一部署单元702,用于根据所述第一消息部署所述M个服务模块,其中,所述M个服务模块中的任一个服务模块与所述N个采集模块中的一个采集模块具有对应关系;

处理单元703,当所述管理模块获取到服务更新指令时,用于根据所述服务更新指令对所述M个服务模块进行配置更新处理。

在一种可能的实现方式中,所述处理单元703具体用于:

根据所述服务更新指令向目标服务模块发送动态配置指令,以使得所述目标服务模块向剩余服务模块广播所述动态配置指令,所述目标服务模块为所述M个服务模块中的任一个服务模块,所述剩余服务模块为除去所述目标服务模块后剩余的M-1个服务模块,所述动态配置指令用于所述M个服务模块确定待启用的服务模块。

在一种可能的实现方式中,管理模块还包括:

停止单元704,用于停止空闲的服务模块,所述空闲的服务模块为所述M个服务模块中不需要启用的服务模块。

在一种可能的实现方式中,管理模块还包括:

监控单元705,用于对所述M个服务模块上的进程进行监控,以得到监控结果;

获取单元706,若所述监控结果满足更新条件,则用于获取所述服务更新指令。

在一种可能的实现方式中,第一部署单元702具体用于:

根据所述N个采集模块所在节点的标识确定M个服务模块对应的节点位置;

根据所述节点位置部署所述M个服务模块。

在一种可能的实现方式中,管理模块还包括:

重启单元707,若超过M/2个服务模块为不可用的,则用于将所述M个服务模块中的P个幸存服务模块进行配置重启,所述P满足条件P≤M,且P为大于0的整数,所述幸存服务模块为可用的服务模块;

第二部署单元708,用于重新部署K个服务模块,其中,所述M为偶数时,所述K满足条件K=M/2,所述M为奇数时,所述K满足条件K=(M+1)/2,所述K为大于0的整数。

在一种可能的实现方式中,管理模块还包括:

判断单元709,若满足条件P+K<M,则用于判断所述P+K个服务模块是否可用;

第三部署单元710,若所述P+K个服务模块可用,则用于重新部署S个服务模块,所述S满足条件S+P+K=M,所述S为大于0的整数。

在一种可能的实现方式中,所述处理单元703具体用于:

根据所述服务更新指令向目标服务模块发送动态配置指令,以使得所述目标服务模块向剩余服务模块广播所述动态配置指令,所述目标服务模块为M+L个服务模块中的任一个服务模块,所述剩余服务模块为除去所述目标服务模块后剩余的M+L-1个服务模块,所述动态配置指令用于所述M+L个服务模块确定待启用的服务模块。

上面图6至图7从模块化功能实体的角度分别对本申请实施例中的管理模块进行详细描述,下面从硬件处理的角度对本申请实施例中承载管理模块的管理功能实体进行详细描述。

图8是本申请实施例提供的一种管理功能实体的结构示意图,该管理功能实体800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)801(例如,一个或一个以上处理器)和存储器809,一个或一个以上存储应用程序807或数据806的存储介质808(例如一个或一个以上海量存储设备)。其中,存储器809和存储介质808可以是短暂存储或持久存储。存储在存储介质808的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对管理功能实体中的一系列指令操作。更进一步地,处理器801可以设置为与存储介质808通信,在管理功能实体800上执行存储介质808中的一系列指令操作。

管理功能实体800还可以包括一个或一个以上电源802,一个或一个以上有线或无线网络接口803,一个或一个以上输入输出接口804,和/或,一个或一个以上操作系统805,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图8中示出的管理功能实体结构并不构成对管理功能实体的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图8对管理功能实体的各个构成部件进行具体的介绍:

处理器801是管理功能实体的控制中心,可以按照设置的信息处理方法进行处理。处理器801利用各种接口和线路连接整个管理功能实体的各个部分,通过运行或执行存储在存储器809内的软件程序和/或模块,以及调用存储在存储器809内的数据,执行管理功能实体的各种功能和处理数据,从而实现对分布式系统的管理。

存储器809可用于存储软件程序以及模块,处理器801通过运行存储在存储器809的软件程序以及模块,从而执行管理功能实体800的各种功能应用以及数据处理。存储器809可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如部署服务模块等)等;存储数据区可存储根据管理功能实体的使用所创建的数据(比如动态配置指令等)等。此外,存储器809可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。在本申请实施例中提供的信息处理方法的程序和接收到的数据流存储在存储器中,当需要使用时,处理器801从存储器809中调用。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1