基于角色配置的服务管理方法和装置与流程

文档序号:11147610阅读:694来源:国知局
基于角色配置的服务管理方法和装置与制造工艺
本发明涉及分布式服务器管理领域,具体而言,涉及一种基于角色配置的服务管理方法和装置。
背景技术
:随着互联网的发展,互联网应用越来越复杂,系统规模也越来越大。一个比较复杂的系统通常会提供许多服务,这就需要有一个灵活高效的管理方法来管理服务器提供的服务。在现有技术中,假设一个系统中存在4台服务器,该系统要提供表1所示的4种服务。表1服务名称服务说明nginx服务接收用户请求fcgi服务处理用户请求日志搜集服务搜集系统访问日志日志分析服务分析,统计日志首先,由管理员编写服务器与服务对应关系的配置文件,该对应关系可以用一个表格描述,例如表2所示。表2服务器服务器需要提供哪些服务服务器Anginx服务,fcgi服务服务器Bnginx服务,fcgi服务服务器Cnginx服务,fcgi服务,日志搜集服务,日志分析服务服务器D日志搜集服务,日志分析服务然后,管理员将登录到每台服务器,检查服务器所提供的服务是否与配置文件中该台服务器所对应的服务一致,如果不一致则通过启动或停止相关服务,使其与配置文件中配置一致。如果要变更某些服务器提供的服务,如在服务器B上增加日志搜集服务和日志分析服务。则先由管理员修改配置文件,修改后的配置文件如表3所示。表3服务器服务器需要提供哪些服务服务器Anginx服务,fcgi服务服务器Bnginx服务,fcgi服务,日志搜集服务,日志分析服务服务器Cnginx服务,fcgi服务,日志搜集服务,日志分析服务服务器D日志搜集服务,日志分析服务然后,管理员将会再次登录到每台服务器,检查每台服务器所提供的服务是否与配置文件一致,如果不一致则通过启动或停止相关服务,使其与配置文件中配置一致。由上述描述可知,相关技术中对系统中多台服务器的服务进行配置时,每次配置变更都需要登录到每台服务器,工作量很大。并且,配置文件中需要列出所有服务器与应当启动的服务之间的对应关系,使得配置文件冗杂庞大且不够简化。例如,虽然nginx服务与fcgi服务是成对出现的,日志搜集服务与日志分析服务也是成对出现的,但是在现有的配置文件中并不能将这些相关联或者成对出现的服务进行简化表示。另外,如果在系统中某台服务器的某个服务因异常而停止,由于管理员并未登录到这台服务器检查,因此存在不能及时发现服务停止或者不能尽快恢复服务的启动问题。技术实现要素:本发明提供了一种基于角色配置的服务管理方法和装置,以至少解决在配置文件中记录服务器与该服务器上应当启动的服务之间的对应关系所导致的配置文件冗杂庞大的问题。根据本发明的一个方面,提供了一种基于角色配置的服务管理方法,包括:服务器从协调服务集群获取角色配置信息,所述角色配置信息用于描述所述服务器所拥有的一个或者多个角色,其中,所述一个或者多个角色中的每个角色对应于一个或者多个服务;所述服务器根据所述一个或者多个角色对应的服务,对所述服务器上运行的服务进行管理。可选地,服务器从协调服务集群获取角色配置信息包括:所述服务器周期性从所述协调服务器集群获取所述角色配置信息;或者,在所述角色配置信息有变更的情况下,所述服务器接收所述协调服务器集群推送的所述角色配置信息。可选地,所述服务器根据所述一个或者多个角色对应的服务,对所述服务器上运行的服务进行管理包括:所述服务器根据所述一个或者多个角色,以及预先配置的所有角色与所有服务的对应关系,确定所述服务器应当启动的服务和应当停止的服务,其中,所述应当启动的服务为所述一个或者多个角色对应的全部服务的并集,所述应当停止的服务为所述所有服务中除所述应当启动的服务之外的其他服务;所述服务器判断所述服务器上服务的启动和停止状态是否与所述应当启动的服务和所述应当停止的服务一致;在不一致的情况下,所述服务器按照所述应当启动的服务启动所述服务器的相应服务,和/或按照所述应当停止的服务停止所述服务器的相应服务。可选地,在所述服务器按照所述应当启动的服务启动所述服务器的相应服务,和/或按照所述应当停止的服务停止所述服务器的相应服务之后,所述方法还包括:所述服务器判断所述服务器上服务的启动和停止状态是否与所述应当启动的服务和所述应当停止的服务一致;在不一致的情况下,所述服务器发送告警信息至所述协调服务集群。可选地,所述预先配置的所有角色与所有服务的对应关系是通过所述协调服务集群首次配置给所述服务器并周期性、或在所述预先配置的所有角色与所有服务的对应关系有变更的情况下发送给所述服务器的。根据本发明的另一个方面,还提供了一种基于角色配置的服务管理装置,应用于服务器,包括:获取模块,用于从协调服务集群获取角色配置信息,所述角色配置信息用于描述所述服务器所拥有的一个或者多个角色,其中,所述一个或者多个角色中的每个角色对应于一个或者多个服务;管理模块,用于根据所述一个或者多个角色对应的服务,对所述服务器上运行的服务进行管理。可选地,所述获取模块包括:获取单元,用于周期性从所述协调服务器集群获取所述角色配置信息;或者,接收单元,用于在所述角色配置信息有变更的情况下,接收所述协调服务器集群推送的所述角色配置信息。可选地,所述管理模块包括:确定单元,用于根据所述一个或者多个角色,以及预先配置的所有角色与所有服务的对应关系,确定所述服务器应当启动的服务和应当停止的服务,其中,所述应当启动的服务为所述一个或者多个角色对应的全部服务的并集,所述应当停止的服务为所述所有服务中除所述应当启动的服务之外的其他服务;判断单元,用于判断所述服务器上服务的启动和停止状态是否与所述应当启动的服务和所述应当停止的服务一致;管理单元,用于在所述判断单元判断到所述服务器上服务的启动和停止状态与所述应当启动的服务和所述应当停止的服务不一致的情况下,按照所述应当启动的服务启动所述服务器的相应服务,和/或按照所述应当停止的服务停止所述服务器的相应服务。可选地,所述装置还包括:告警模块,用于在所述管理单元按照所述应当启动的服务启动所述服务器的相应服务,和/或按照所述应当停止的服务停止所述服务器的相应服务之后,所述判断单元判断到所述服务器上服务的启动和停止状态与所述应当启动的服务和所述应当停止的服务不一致的情况下,发送告警信息至所述协调服务集群。可选地,所述预先配置的所有角色与所有服务的对应关系是通过所述协调服务集群首次配置给所述服务器并周期性、或在所述预先配置的所有角色与所有服务的对应关系有变更的情况下发送给所述服务器的。通过本发明,采用服务器从协调服务集群获取角色配置信息,角色配置信息用于描述服务器所拥有的一个或者多个角色,其中,一个或者多个角色中的每个角色对应于一个或者多个服务;服务器根据一个或者多个角色对应的服务,对服务器上运行的服务进行管理的方式,将角色与一个或者多个服务进行对应,在对服务器进行配置时,只需要在配置文件中描述该服务器拥有的所有角色信息,解决了在配置文件中记录服务器与该服务器上应当启动的服务之间的对应关系所导致的配置文件冗杂庞大的问题,减少了配置文件需要描述的内容,进而可以减小配置文件的大小。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的基于角色配置的服务管理方法的流程图;图2是根据本发明实施例的基于角色配置的服务管理装置的结构框图;图3是根据本发明实施例的基于角色配置的服务管理装置的优选结构框图;图4是根据本发明优选实施例的基于角色配置的服务管理方法的流程图;图5是根据本发明优选实施例的基于角色配置的服务管理方法的优选流程图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。实施例1在本实施例中提供了一种基于角色配置的服务管理方法,图1是根据本发明实施例的基于角色配置的服务管理方法的流程图,如图1所示,该流程包括如下步骤:步骤S101,服务器从协调服务集群获取角色配置信息,其中,角色配置信息用于描述服务器所拥有的一个或者多个角色,一个或者多个角色中的每个角色对应于一个或者多个服务;步骤S102,服务器根据一个或者多个角色对应的服务,对服务器上运行的服务进行管理。通过上述步骤,由于采用服务器的角色代替服务器的服务信息,且一个角色对应于一个或者多个服务,使得相关联或者成对出现的服务能够使用一个角色来表示,在服务数量庞大且服务之间关联性比较多的情况下,能够大大地降低配置文件中需要表示的内容大小;并且,在采用基于角色配置的服务管理方法后,可以进一步将角色与将要实现的功能相互对应起来,这样在进行服务器的功能配置时,只需要考虑服务器所要拥有的角色信息,而不必再一一确定服务器需要提供的每一项服务的详细情况。可见,通过上述步骤可以简化配置文件,减小配置文件的大小,还能简化配置服务器各个服务的复杂度。需要说明的是,本发明实施例的角色配置信息作为配置文件中的主要信息,可以与其他配置信息结合使用。例如,可以将角色配置信息与某些特殊的服务的状态信息都携带在同一个配置文件中,从而可以在基于角色配置信息管理服务的基础上,实现对特定的服务的启停,以满足整个系统各种个性化服务需求或者测试需求。为了降低管理员的工作量,避免对每台服务器的配置都需要登录该服务器进行手动配置,本发明实施例中在服务器中设置了一个基于角色配置的服务管理装置来执行本实施例的各个步骤,并且,虽然该基于角色配置的服务管理装置较优地是以软件的形式存在,当然,以硬件的形式存在也是可以被设计和构想的。服务器获得角色配置信息的方式有两种方式,一种是周期性主动获取角色配置信息,另一种是被动接受协调服务集群的角色配置信息推送。例如,服务器周期性(例如每间隔1分钟)从协调服务器集群获取角色配置信息;或者,在协调服务集群上的角色配置信息有变更的情况下,协调服务器主动推送角色配置信息给服务器,服务器则接收协调服务器集群推送的角色配置信息。通过上述的方式,实现了角色配置信息的周期性或者实时更新,为服务器上的各个服务的状态周期性或者实时更新奠定了基础。可选地,在上述步骤S102中,服务器根据一个或者多个角色,以及预先配置的所有角色与所有服务的对应关系,确定服务器应当启动的服务和应当停止的服务,其中,应当启动的服务为一个或者多个角色对应的全部服务的并集,应当停止的服务为所有服务中除应当启动的服务之外的其他服务;服务器判断服务器上服务的启动和停止状态是否与应当启动的服务和应当停止的服务一致;在不一致的情况下,服务器按照应当启动的服务启动服务器的相应服务,和/或按照应当停止的服务停止服务器的相应服务。通过上述的方式,目的是保证该服务器拥有的全部角色对应的所有的服务都能够启动,并且出于节能或者服务器稳定性或者服务器的处理资源节约的目的,将停止所有不需要的服务,即应当停止的服务。在服务器按照应当启动的服务启动服务器的相应服务,和/或按照应当停止的服务停止服务器的相应服务之后,某些服务可能会因为各种异常原因而启动失败,或者在启动之后因异常而终止。若因为偶然的异常导致服务启动失败或者服务终止,在本实施例中可以通过重复执行步骤S102的方式得以修正。重复执行的次数和时间间隔可以按照需要进行配置。在执行至少一次步骤S102之后,服务器可以再次判断服务器上服务的启动和停止状态是否与应当启动的服务和应当停止的服务一致;在不一致的情况下,例如应当停止的服务却无法停止或应当启动的服务却无法启动的情况下,服务器发送告警信息至协调服务集群,以通知管理员来排查故障或者手动启动/停止相应的服务。在发送的告警信息中,可以携带状态不一致的服务的信息,甚至还可以携带可能的异常原因值。可选地,上述预先配置的所有角色与所有服务的对应关系是通过协调服务集群首次配置给服务器并周期性、或在预先配置的所有角色与所有服务的对应关系有变更的情况下发送给服务器的。所有角色与所有服务的对应关系是各个服务器确定某一角色对应哪些服务的依据,在每次预先配置的所有角色与所有服务的对应关系有更新的情况下,应该至少执行一次上述步骤S101和步骤S102,以保证系统中每个服务器上的服务状态为正确的状态。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁盘、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例2在本实施例中还提供了一种基于角色配置的服务管理装置,该装置应用于服务器中,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图2是根据本发明实施例的基于角色配置的服务管理装置的结构框图,如图2所示,该装置包括:获取模块21和管理模块22,其中,获取模块21,用于从协调服务集群获取角色配置信息,角色配置信息用于描述服务器所拥有的一个或者多个角色,其中,一个或者多个角色中的每个角色对应于一个或者多个服务;管理模块22,耦合至获取模块21,用于根据一个或者多个角色对应的服务,对服务器上运行的服务进行管理。可选地,获取模块21可以包括:获取单元,用于周期性从协调服务器集群获取角色配置信息;或者,接收单元,用于在角色配置信息有变更的情况下,接收协调服务器集群推送的角色配置信息。可选地,管理模块22可以包括:确定单元221,用于根据一个或者多个角色,以及预先配置的所有角色与所有服务的对应关系,确定服务器应当启动的服务和应当停止的服务,其中,应当启动的服务为一个或者多个角色对应的全部服务的并集,应当停止的服务为所有服务中除应当启动的服务之外的其他服务;判断单元222,用于判断服务器上服务的启动和停止状态是否与应当启动的服务和应当停止的服务一致;管理单元223,用于在判断单元判断到服务器上服务的启动和停止状态与应当启动的服务和应当停止的服务不一致的情况下,按照应当启动的服务启动服务器的相应服务,和/或按照应当停止的服务停止服务器的相应服务。图3是根据本发明实施例的基于角色配置的服务管理的优选结构框图,如图3所示,可选地,基于角色配置的服务管理装置还可以包括:告警模块23,耦合至判断单元222和管理单元223,用于在管理单元223按照应当启动的服务启动服务器的相应服务,和/或按照应当停止的服务停止服务器的相应服务之后,判断单元222判断到服务器上服务的启动和停止状态与应当启动的服务和应当停止的服务不一致的情况下,发送告警信息至协调服务集群。可选地,预先配置的所有角色与所有服务的对应关系是通过协调服务集群首次配置给服务器并周期性、或在预先配置的所有角色与所有服务的对应关系有变更的情况下发送给服务器的。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。实施例3本发明的实施例还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。实施例4本发明的实施例还提供了一种存储介质。在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:步骤S101,服务器从协调服务集群获取角色配置信息,角色配置信息用于描述服务器所拥有的一个或者多个角色,其中,一个或者多个角色中的每个角色对应于一个或者多个服务;步骤S102,服务器根据一个或者多个角色对应的服务,对服务器上运行的服务进行管理。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-OnlyMemory,简称为ROM)、随机存取存储器(RandomAccessMemory,简称为RAM)、移动硬盘、磁盘或者光盘等各种可以存储程序代码的介质。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。为了使本发明实施例的描述更加清楚,下面结合优选实施例进行描述和说明。实施例5在本实施例中提供了一种基于角色配置的服务管理方法,图4是根据本发明优选实施例的基于角色配置的服务管理方法的流程图,如图4所示,该流程包括如下步骤:步骤S401,将相关联的若干个服务(如上例中的nginx服务和fcgi服务)定义为一个角色。一个角色与若干个服务相对应。例如将nginx服务和fcgi服务定义为一个角色并命名为front;将日志搜集服务和日志分析服务定义为一个角色并命名为log,则角色与服务的对应关系如表4所示。表4角色名角色对应的服务frontnginx服务,fcgi服务log日志搜集服务,日志分析服务则配置文件可以简化为服务器与角色的对应关系,如表5所示。表5服务器服务器拥有哪些角色服务器Afront服务器Bfront服务器Cfront,log服务器Dlog步骤S402,将简化后的配置(即服务器与角色的对应关系,相当于上述的角色配置信息)放到zookeeper集群(一种协调服务集群)中。步骤S403,在每台服务器上安装一个管理程序(该管理程序用于执行实施例1中描述的方法),通过Linux的cron(计划)服务,将该管理程序设置为每分钟执行一次。同时角色与服务对应关系的信息也会以配置文件的形式或其他形式与管理程序一起安装到每台服务器上。管理程序每次执行时,首先访问zookeeper集群,得到管理程序所在的服务器所拥有的若干个角色,然后通过安装的配置文件或其他方式获取角色与服务对应关系信息,同时也得到了系统能提供的所有服务。该服务器所拥有的若干角色所对应的服务的并集就是该服务器需要提供的服务,而该服务器不应提供的服务为所有服务中除去上述并集中的服务后剩下的那些服务。对于需要提供的每个服务,执行相关命令检查该服务的状态,看是运行状态还是停止状态,如果是停止状态,则通过执行相关命令启动该服务;对于不应该提供的每个服务,执行相关命令检查该服务的状态,看是运行状态还是停止状态,如果是运行状态,则通过执行相关命令停止该服务。步骤S404,如果要变更服务器与角色的对应关系,只需要通过访问zookeeper集群,更新一下配置。因为每台服务器上的管理程序每分钟会执行一次,所以在一分钟内,所有服务器所提供的服务将与更新后的配置一致。下面结合具体的实例和附图5对上述优选实施例进行说明。参考图5,在该实例中,步骤1,将系统中若干个相关的服务绑定在一起定义为一个角色,这样一个角色就是若干个服务的集合。需要保证所有的角色的并集等于所有服务组成的集合,同时尽量保证各个角色之间没有交集。最后可以得到角色与服务之间的对应关系,该关系为一对多的关系,一个角色可以对应0个到多个服务。该对应关系通常是不会改变的,可以将该对应关系以配置文件或其他方便的形式保存。后面的管理程序可以通过读取配置文件或其他方式得到该对应关系。例如图5中将nginx服务,fcgi服务,日志搜集服务,日志分析服务,数据库服务5个服务划分成3组,分别定义为front,log,db这3个角色。角色front对应nginx服务和fcgi服务;角色log对应日志搜集服务和日志分析服务;角色db对应数据库服务。步骤2,按需要配置服务器与角色之间的对应关系,该对应关系为多对多的关系,即同一台服务器可以拥有多个角色,同一个角色也可以被多台服务器拥有。例如图5中,服务器10.0.0.1拥有front和db这两个角色;服务器10.0.0.2拥有front和log这两个角色;服务器10.0.0.3只拥有db这一个角色。步骤3,将步骤2中确定的服务器与角色的对应关系写入到zookeeper集群中。步骤4,编写管理程序,该管理程序用于检查某台服务器上所提供的服务是否与我们最新配置中所要求该台服务器提供的服务一致,如果不一致,需要执行相关操作使其与配置所要求的一致。该程序的流程为:步骤4.1,访问zookeeper集群,获取该程序所在的服务器所拥有的若干个角色。例如图5中可得到服务器10.0.0.1拥有的角色为front和db。步骤4.2,通过读取配置文件或其他方式得到角色与服务之间的对应关系。将所有角色对应的服务的集合并在一起可以得到系统所提供的全部服务。例如图5中,角色front对应的服务为nginx服务和fcgi服务;角色log对应的服务为日志搜集服务和日志分析服务;角色db对应的服务为数据库服务。同时系统所能提供的全部服务为nginx服务、fcgi服务、日志搜集服务、日志分析服务和数据库服务。步骤4.3,将该服务器所拥有的那些角色对应的服务并在一起可以得到该服务器需要提供的服务。系统所能提供的全部服务中除去该服务器需要提供的那些服务,剩下的就是该服务器不需要提供的服务。例如图5中,服务器10.0.0.1拥有角色front和角色db。角色front对应nginx服务和fcgi服务,角色db对应数据库服务,因此,服务器10.0.0.1需要提供的服务包括nginx服务、fcgi服务、数据库服务。剩下的日志搜集服务和日志分析服务则是服务器10.0.0.1不需要提供的服务。步骤4.4,对于该台服务器需要提供的每个服务,检查该服务是否处于运行状态,如果不是,则启动该服务。例如图5中需要检查nginx服务、fcgi服务和数据库服务,保证这3个服务处于运行状态。步骤4.5,对于该台服务器不需要提供的每个服务,检查该服务是否处于运行状态,如果是,则停止该服务。例如图5中需要检查日志搜集服务和日志分析服务,保证这两个服务处于停止状态。步骤5,将管理程序和描述角色与服务对应关系的配置安装到每一台服务器上。步骤6,配置服务器的cron,使安装在服务器上的管理程序每分钟运行一次。步骤7,如果需要更新服务器与角色的对应关系,将更新后的对应关系写入到zookeeper集群中,在一分钟内,管理程序将会从zookeeper读取到更新,并使服务器提供的服务与更新后的配置所要求的一致。综上所述,通过本发明提供的上述实施例或者优选实施方式,可以达到以下有益效果:1,配置更加简单,只需配置服务器与角色之间的对应关系,管理程序会通过角色与服务的对应关系自动获得服务器与服务之间的对应关系。2,变更服务器所提供的服务时,只需要更新协调服务集群中的配置,不需要登录到每一台服务器,简化了服务管理工作。3,如果服务器上某个服务异常停止了,则在一分钟内就不被管理程序发现,管理程序会重新启动该服务,提高了服务的可靠性。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1