一种用于管理分布式系统的方法和装置与流程

文档序号:12596253阅读:189来源:国知局
一种用于管理分布式系统的方法和装置与流程

本发明涉及计算机领域,尤其涉及一种用于管理分布式系统的方法和装置。



背景技术:

分布式系统由多个服务器组成,服务器间相互配合以实现整个系统对外的功能和服务。为了保证分布式系统能够正常运行,为用户提供服务,如何管理分布式系统就显得非常重要。

有相关技术对分布式系统采取如下的管理:首先在分布式系统中确定其中一个服务器为控制服务器,控制服务器在整个分布式系统中处于控制地位。然后,其他各个服务器的向控制服务器提供自身设备状态,以使控制服务器基于每个服务器的设备状态对分布式系统中各个服务器进行管理。例如,优先为设备状态为“空闲”的服务器分配任务,关闭或者重启设备状态为“不可用”的服务器等。

可见,相关技术在管理分布式系统时,仅涉及到设备级别的管理。然而,对于数据量庞大的分布式系统,这样的管理是不够精确的。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的用于管理分布式系统的方法和装置。

第一方面,本发明提供了一种用于管理分布式系统的方法,包括:

获得所述分布式系统的每个服务器上运行的每个进程的进程参数;

将每个所述进程的所述进程参数发送至所述分布式系统的中心进程;

接收所述中心进程基于所述进程参数而生成的控制指令;

将所述控制指令转发到所述控制指令对应的目标进程,以使所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

可选的,获得所述分布式系统的每个服务器上运行的每个进程的进程参数,包括:

在每个所述进程运行过程中,获得每个所述进程的函数开销,将所述函数开销作为所述进程参数。

可选的,在获得所述分布式系统的每个服务器上运行的每个进程的进程参数之前,还包括:

接收每个所述进程发送的身份标识,并基于所述身份标识绑定每个所述进程。

可选的,将所述控制指令转发到所述控制指令对应的目标进程,包括:

根据所述控制指令中包括的所述目标进程的身份标识确定所述目标进程;

将所述控制指令的协议转换为所述目标进程支持的协议;

向所述目标进程发送协议转换后的所述控制指令。

可选的,所述方法还包括:

接收用于修改配置的修改文件;所述修改文件为使用go语言编译的文件;

运行所述修改文件,以修改所述配置。

可选的,所述进程由go语言编译。

第二方面,本发明提供了另一种用于管理分布式系统的方法,包括:

接收所述分布式系统的软件开发工具包SDK发送的所述分布式系统的每个服务器上运行的每个进程的进程参数;

基于所述进程参数,从所述进程中确定出需要进行控制的目标进程;

根据所述目标进程的所述进程参数生成用于控制所述目标进程的控制指令;

向所述SDK发送所述控制指令,以使所述SDK将所述控制指令转发至所述目标进程,进而所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

可选的,基于所述进程参数,从所述进程中确定出需要进行控制的目标进程,包括:

判断每个所述进程参数是否满足表示所述进程需要被控制的预设条件;

将满足所述预设条件的所述进程参数对应的所述进程确定为所述目标进程。

可选的,所述进程由go语言编译。

第四方面,本发明提供了一种用于管理分布式系统的装置,包括:

获得模块,用于获得所述分布式系统的每个服务器上运行的每个进程的进程参数;

第一发送模块,用于将每个所述进程的所述进程参数发送至所述分布式系统的中心进程;

第一接收模块,用于接收所述中心进程基于所述进程参数而生成的控制指令;

第二发送模块,用于将所述控制指令转发到所述控制指令对应的目标进程,以使所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

可选的,所述获得模块用于在每个所述进程运行过程中,获得每个所述进程的函数开销,将所述函数开销作为所述进程参数。

可选的,所述装置还包括:

第二接收模块,用于在获得所述分布式系统的每个服务器上运行的每个进程的进程参数之前,接收每个所述进程发送的身份标识,并基于所述身份标识绑定每个所述进程。

可选的,所述第二发送模块用于根据所述控制指令中包括的所述目标进程的身份标识确定所述目标进程;将所述控制指令的协议转换为所述目标进程支持的协议;向所述目标进程发送协议转换后的所述控制指令。

可选的,所述装置还包括:

第三接收模块,用于接收用于修改配置的修改文件;所述修改文件为使用go语言编译的文件;

运行模块,用于运行所述修改文件,以修改所述配置。

可选的,所述进程由go语言编译。

第四方面,本发明提供了另一种用于管理分布式系统的装置,包括:

接收模块,用于接收所述分布式系统的软件开发工具包SDK发送的所述分布式系统的每个服务器上运行的每个进程的进程参数;

确定模块,用于基于所述进程参数,从所述进程中确定出需要进行控制的目标进程;

生成模块,用于根据所述目标进程的所述进程参数生成用于控制所述目标进程的控制指令;

发送模块,用于向所述SDK发送所述控制指令,以使所述SDK将所述控制指令转发至所述目标进程,进而所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

可选的,所述确定模块用于判断每个所述进程参数是否满足表示所述进程需要被控制的预设条件;将满足所述预设条件的所述进程参数对应的所述进程确定为所述目标进程。

可选的,所述进程由go语言编译。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明实施例中,SDK获得每个服务器上运行的每个进程的进程参数,将每个进程的进程参数发送至中心进程。中心进程基于每个进程的进程参数确定需要进行控制的目标进程,以及基于目标进程的进程参数生成控制指令并发送给SDK。SDK接收控制指令,将控制指令转发到目标进程,以使目标进程执行控制指令,实现中心进程对目标进程的控制。通过上述过程,本发明实现了在分布式系统中进行进程级别的管理。由于对不同进程执行不同的控制,相较于设备级别的控制,对一个服务器上的所有进程均进行一致管理,本发明能够更加精确地管理分布式系统。

附图说明

图1为本发明实施例的一种可能的分布式系统架构图;

图2为本发明实施例中一用于管理分布式系统的方法流程图;

图3为本发明实施例中另一用于管理分布式系统的方法流程图;

图4为本发明实施例中又一用于管理分布式系统的方法流程图;

图5为本发明实施例中一用于管理分布式系统的装置结构示意图;

图6为本发明实施例中另一用于管理分布式系统的装置结构示意图。

具体实施方式

本发明实施例提供了一种用于管理分布式系统的方法和装置,用于实现对分布式系统进行进程级别的管理。

下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

为了更加清楚地描述本发明实施例中的技术方案,首先对可应用本发明实施例技术方案的分布式系统进行简单介绍。请参考图1,为一种可能的分布式系统架构图。

该架构包括:多个服务器,每个服务器通过网络与其他服务器连接,多个服务器相互协同,以使整个分布式系统统一对用户和上层应用提供服务。当分布式系统处于工作状态时,每个服务器将运行至少一个进程。每个进程用于实现对至少一个用户的功能,例如注册功能、存储功能、用户状态管理功能、接口功能、网关功能和路由功能等。每个服务器上运行的进程数量不完全相同,且每个服务器上的进程所对应的功能可以相同也可以不同,本发明不做具体限制。

进一步,分布式系统所运行的所有进程中,有一个用于管理所有进程的中心进程,例如通知每个进程应该实现的功能。中心进程可以运行于任意一个服务器上。在具体实现过程中,为了给中心进程提供充足的设备资源,中心进程单独运行在一个服务器上为较佳。换言之,运行中心进程的服务器不运行其他进程。

另外,分布式系统还包括一个用于实现中心进程和各个进程交互的控制插件,例如SDK(软件开发工具包,Software Development Kit)。控制插件的功能通过每个进程共同支持。

下面将参照附图详细地描述本发明实施例中如何管理分布式系统进行介绍。

本发明第一方面提供了一种用于管理分布式系统的方法,如图2所示,该方法包括:

S101:获得所述分布式系统的每个服务器上运行的每个进程的进程参数;

S102:将每个所述进程的所述进程参数发送至所述分布式系统的中心进程;

S103:接收所述中心进程基于所述进程参数而生成的控制指令;

S104:将所述控制指令转发到所述控制指令对应的目标进程,以使所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

在具体实现过程中,执行第一种用于管理分布式系统的方法的主体可以为分布式系统中具有控制功能的服务器、或者控制插件等,为方便介绍,下文中将以执行主体为SDK为例。

在S101中,SDK从分布式系统中的每个进程中获得每个进程的进程参数。在本发明实施例中,进程参数为表示进程运行状态的参数。接着,在S102中,SDK将所获得的每个进程的进程参数发送给中心进程,以使中心进程可以参考进程参数确定对分布式系统中的进程如何进行控制。中心进程基于进程参数生成控制指令并返回给SDK,进而在S103中,SDK接收中心进程发送的控制指令。进一步的,S104中,SDK将控制指令转发到中心进程需要控制的,也即控制指令对应的目标进程。目标进程接收SDK转发来的控制指令,解析并执行控制指令,进而实现中心进程对目标进程的控制。

由上述描述可以看出,通过SDK收集分布式系统每个进程的进程参数,将每个进程的进程参数发送至中心进程,进而中心进程基于每个进程的进程参数确定需要进行控制的目标进程并生成控制指令。SDK进一步将控制指令转发到目标进程,由此实现对目标进程的控制。因此,本发明实施例实现了对分布式系统进程的管理。设备级别的控制针对一个设备进行控制,使得一个服务器上运行的不同进程均接受相同的控制。而本发明实施例对不同进程执行不同的控制,所以,相较于设备级别的控制,本发明能够更加精确地管理分布式系统。

具体来讲,在本发明实施例中,S101中获得每个进程的进程参数包括如下过程:

在每个所述进程运行过程中,获得每个所述进程的函数开销,将所述函数开销作为所述进程参数。

具体来讲,函数开销包括函数的调用时间和函数的调用关系。在每个进程运行的过程中,SDK从进程中收集函数开销,进而将函数开销作为进程参数。

由于进程是一个程序,而程序的运行主要包括函数的执行与调用,因此,函数开销可以反映出进程的运行状态。

作为一种可选的实施例,在S101之前还包括:

接收每个所述进程发送的身份标识,并基于所述身份标识绑定每个所述进程。

为了让SDK在进程运行时能够收集到进程参数,在S101之前,每个进程将自身的身份标识发送给SDK。其中,身份标识用于唯一标识一个进程。在本发明实施例中,身份标识包括但不限于进程的IP(网络之间互连的协议,Internet Protocol)和端口等,本发明不做具体限制。具体来讲,每个进程在上线后,将自身身份标识提供给SDK,以使得SDK可以在进程运行时获得进程参数,进而使得中心进程可以对该进程进行管理。SDK接收各个进程发送而来的身份标识,存储在SDK对应的存储空间中,进而将SDK与各个进程绑定。

进而,当SDK需要获取进程参数时,从存储空间中读取需要获取进程参数的进程的身份标识,通过IP和端口访问该进程,从该进程中收集进程参数。

进一步,结合上述实施例,S104则具体通过如下过程实现:

根据所述控制指令中包括的所述目标进程的身份标识确定所述目标进程;

将所述控制指令的协议转换为所述目标进程支持的协议;

向所述目标进程发送协议转换后的所述控制指令。

具体来讲,本发明实施例中的控制指令包括目标进程的身份标识,因此,SDK接收中心进程发送的控制指令后,从控制指令中解析出身份标识,然后进一步根据存储的各个进程的身份标识,匹配出与控制指令中的身份标识一致的进程,将该进程确定为目标进程。

另外,由于中心进程所支持或所使用的协议与目标进程可能有所不同,所以,为了使得目标进程可以读取并执行控制指令,SDK还需要按照目标进程所支持的协议对控制指令进行协议转换,将控制指令的协议转换为目标进程所支持的协议。然后,按照确定出的目标进程,将转换后的控制指令发送到目标进程。

作为一种可选的实施例,在本发明实施例中,用于管理分布式系统的方法还可以进一步包括:

接收用于修改配置的修改文件;所述修改文件为使用go语言编译的文件;

运行所述修改文件,以修改所述配置。

具体来讲,SDK接收管理人员发送来的用于修改SDK配置的修改文件。在本发明实施例中,修改文件包括但不限于修改的配置项目、修改后的配置参数以及安全验证信息等,本发明不做具体限制。

SDK接收到修改文件后,对修改文件进行解析,并且运行解析后的修改文件,实现对相应配置参数的修改。其中,本发明实施例中的修改文件为使用go语言编译的文件。其中,go语言是谷歌开发的编程语言,具有支持高并发等优点。利用go语言在编写修改文件时可以以串行思维编写,在底层实现时则按纯异步并行执行。所以,修改文件发送到SDK后,SDK可以自动将需要修改的配置参数,以及与需要修改的配置参数相关的参数一并自动修改。

由上述描述可知,利用go语言编译修改文件,再将修改文件打包发送到线上的SDK中,可以实现SDK基于修改文件自动修改配置,以及自动修改与修改的配置参数相关的其他参数。进而,分布式系统的管理人员不需要再自行对需要修改的配置参数进行修改,以及逐一对相关的其他参数进行修改,因此节约了人力,实现了自动化的技术效果。

更进一步,本发明实施例中的进程均有go语言编写。因此数量较多的进程可以并行执行,满足应用实时性高的需求,例如处理网络直播过程中观看者发送的大量信息,或者视频的弹幕等。

本发明第二方面提供了另一种用于管理分布式系统的方法,如图3所示,该方法包括:

S201:接收所述分布式系统的软件开发工具包SDK发送的所述分布式系统的每个服务器上运行的每个进程的进程参数;

S202:基于所述进程参数,从每个所述进程中确定出需要进行控制的目标进程;

S203:根据所述目标进程的所述进程参数生成用于控制所述目标进程的控制指令;

S204:向所述SDK发送所述控制指令,以使所述SDK将所述控制指令转发至所述目标进程,进而所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

在具体实现过程中,执行第二种用于管理分布式系统的方法的主体可以为分布式系统中具有控制功能的服务器、或者中心进程等,为方便介绍,下文中将以执行主体为中心进程为例。

在S201中,中心进程从SDK接收每个进程的进程参数。接着,中心进程对每个进程参数进行分析,确定进程参数对应的进程是否需要管理和控制。在S202中,基于进程参数,从所有进程中确定出需要控制的进程,将需要控制的进程确定为目标进程。S203中,还需要进一步基于目标进程的进程参数确定如何控制目标进程,进而生成控制指令。最后,在S204中,将生成的控制指令反馈给SDK,以使SDK将控制指令转发到目标进程进行执行。

通过SDK收集分布式系统每个进程的进程参数,将每个进程的进程参数发送至中心进程,进而中心进程基于每个进程的进程参数确定需要进行控制的目标进程并生成控制指令。SDK进一步将控制指令转发到目标进程,由此实现对目标进程的控制。因此,本发明实施例实现了对分布式系统进程的管理。设备级别的控制针对一个设备进行控制,使得一个服务器上运行的不同进程均接受相同的控制。而本发明实施例对不同进程执行不同的控制,所以,相较于设备级别的控制,本发明能够更加精确地管理分布式系统。

具体来讲,在本发明实施例中,S202具体通过如下过程实现:

判断每个所述进程参数是否满足表示所述进程需要被控制的预设条件;

将满足所述预设条件的所述进程参数对应的所述进程确定为所述目标进程。

具体来讲,本发明实施例中的预设条件为表示进程需要被控制的条件,例如进程运行异常、进程运行速度慢或者进程运行出现故障等。对每个进程参数逐一判断是否满足预设条件,如果进程参数满足预设条件,则将该进程参数对应的进程确定为目标进程;反之,如果进程参数满足预设条件,则对下一进程参数进行判断。

在具体实现过程中,预设条件有多种可能性,判断进程参数是否满足预设条件的实现方式也有多种,进而控制指令也有多种可能。下面将列举其中几种。

第一种:

在第一种实现方式中,预设条件为进程参数为空。那么,判断每个进程参数是否满足预设条件,就具体为判断进程参数是否为空。

因此,中心进程对接收到的所有进程参数,一一判断是否为空。对于空的进程参数,则将对应的进程确定为目标进程。

具体来讲,进程参数为空,则表示对应的进程出现网络故障,或者对应的进程无法运行,那么中心进程可以将进程参数为空的进程下线,或者重启。进而,在本发明实施例中,对于进程参数为空的进程,中心节点将生成下线或重启的控制指令。

第二种:

在第二种实现方式中,预设条件为进程参数中的超时次数超过预设次数。那么,判断每个进程参数是否满足预设条件,就具体为判断进程参数的超时次数是否超过预设次数。例如,预设次数为20次,当进程参数中的超时次数超过20次,则将进程参数对应的进程确定为目标进程。其中,预设次数可以为缺省设置,也可以由分布式系统的管理员根据需要动态调整,本发明不做具体限制。

具体来讲,如果进程参数的超时次数超过与预设次数,表明对应的进程在执行过程中频繁出现超时。如果频繁出现超时,原因可能是进程出现了网络故障,导致长时间无法响应;或者,原因可能在于超时时间设置地较短,导致请求时间很容易超时。

因此在第二种实现方式中,如果进程参数的超时次数超过预设次数,则可以生成重启的控制指令,或者重新连接网络的控制指令,或者还可以生成将超时时间修改为更长时间的控制指令,例如将超时时间从3秒修改为5秒等。本发明所属领域的普通技术人员可以根据实际进行设置,本发明不做具体限制。

第三种:

在第三中实现方式中,预设条件为进程参数中的服务用户数量超过预设数量。那么,判断每个进程参数是否满足预设条件,就具体为判断进程参数的服务用户数量是否超过预设数量。例如,预设数量为1000,则当进程参数中的服务用户数量超过1000时,确定进程参数对应的进程为目标进程。

具体来讲,当服务用户数量超过预设数量时,表示分布式系统当前接入大量用户,因此进程当前需要处理大量消息。处理大量消息,一方面对进程将造成很大的负担,甚至使进程瘫痪,另一方面,用户发送消息后需等待很长时间才能确定自己的消息是否被响应。所以,在本发明实施例中,当服务用户数量超过预设数量时,可以修改进程丢弃消息的丢弃率。例如,当服务用户数量超过1000时,将丢弃率修改为10%;当服务用户数量超过2000时,将丢弃率修改为20%;当服务用户数量超过10000时,将丢弃率修改为50%。

进而,对于服务用户数量超过预设数量的进程,中心进程可以生成用于修改丢弃率的控制指令。

在具体实现过程中,本发明所属领域的普通技术人员可以根据实际选择上述实现方式中的任一种,当然,在不冲突的情况下,还可以选择任意多种实现方式进行组合,本发明不做具体限制。

进一步,本发明实施例中的所有进程均有go语义编译。

本发明第三方面提供了另一种用于管理分布式系统的方法,如图4所示,该方法包括:

S301:分布式系统的SDK获得所述分布式系统的每个服务器上运行的每个进程的进程参数;

S302:所述SDK将每个所述进程的所述进程参数发送至所述分布式系统的中心进程;

S303:所述中心进程基于所述进程参数,从所述进程中确定出需要进行控制的目标进程,并根据所述目标进程的所述进程参数生成用于控制所述目标进程的控制指令;

S304:所述中心进程向所述SDK发送所述控制指令;

S305:所述SDK将所述控制指令转发到所述控制指令对应的目标进程,以使所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

在本发明实施例中,执行第三种用于管理分布式系统的方法的主体为分布式系统。

分布式系统通过SDK获得每个进程的进程参数,并将SDK获得的进程数据发送给分布式系统中的中心进程。进而,分布式系统通过中心进程,从各个进程中确定出需要进行管理和控制的目标进程,并生成对目标进程进行控制的控制指令。进一步,分布式系统通过SDK将中心进程生成的控制指令转发到目标进程,以使目标进行执行,实现对分布式系统进程级别的管理。

前述实施例中的各种变化方式和具体实例同样适用于第三方面中用于管理分布式系统的方法,所以为了说明书的简洁,在此不再详述。

基于与前述实施例中用于管理分布式系统的方法同样的发明构思,本发明第四方面还提供一种用于管理分布式系统的装置,如图5所示,包括:

获得模块101,用于获得所述分布式系统的每个服务器上运行的每个进程的进程参数;

第一发送模块102,用于将每个所述进程的所述进程参数发送至所述分布式系统的中心进程;

第一接收模块103,用于接收所述中心进程基于所述进程参数而生成的控制指令;

第二发送模块104,用于将所述控制指令转发到所述控制指令对应的目标进程,以使所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

具体来讲,获得模块101用于在每个所述进程运行过程中,获得每个所述进程的函数开销,将所述函数开销作为所述进程参数。

进一步,在本发明实施例中,用于管理分布式系统的装置还包括:

第二接收模块,用于在获得所述分布式系统的每个服务器上运行的每个进程的进程参数之前,接收每个所述进程发送的身份标识,并基于所述身份标识绑定每个所述进程。

进而,第二发送模块104用于根据所述控制指令中包括的所述目标进程的身份标识确定所述目标进程;将所述控制指令的协议转换为所述目标进程支持的协议;向所述目标进程发送协议转换后的所述控制指令。

更进一步,本发明实施例中的装置还包括:

第三接收模块,用于接收用于修改配置的修改文件;所述修改文件为使用go语言编译的文件;

运行模块,用于运行所述修改文件,以修改所述配置。

其中,本发明实施例中的进程由go语言编译。

前述图1、图2和图4实施例中的用于管理分布式系统的方法的各种变化方式和具体实例同样适用于本实施例的用于管理分布式系统的装置,通过前述对用于管理分布式系统的方法的详细描述,本领域技术人员可以清楚的知道本实施例中用于管理分布式系统的装置的实施方法,所以为了说明书的简洁,在此不再详述。

基于与前述实施例中用于管理分布式系统的方法同样的发明构思,本发明第五方面还提供另一种用于管理分布式系统的装置,如图6所示,包括:

接收模块201,用于接收所述分布式系统的软件开发工具包SDK发送的所述分布式系统的每个服务器上运行的每个进程的进程参数;

确定模块202,用于基于所述进程参数,从所述进程中确定出需要进行控制的目标进程;

生成模块203,用于根据所述目标进程的所述进程参数生成用于控制所述目标进程的控制指令;

发送模块204,用于向所述SDK发送所述控制指令,以使所述SDK将所述控制指令转发至所述目标进程,进而所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

具体来讲,确定模块202用于判断每个所述进程参数是否满足表示所述进程需要被控制的预设条件;将满足所述预设条件的所述进程参数对应的所述进程确定为所述目标进程。

其中,本发明实施例中的进程由go语言编译。

前述图1、图3和图4实施例中的用于管理分布式系统的方法的各种变化方式和具体实例同样适用于本实施例的用于管理分布式系统的装置,通过前述对用于管理分布式系统的方法的详细描述,本领域技术人员可以清楚的知道本实施例中用于管理分布式系统的装置的实施方法,所以为了说明书的简洁,在此不再详述。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

前述图1-图2实施例中的用于管理分布式系统的方法的各种变化方式和具体实例同样适用于本实施例的用于管理分布式系统的装置,通过前述对用于管理分布式系统的方法的详细描述,本领域技术人员可以清楚的知道本实施例中用于管理分布式系统的装置的实施方法,所以为了说明书的简洁,在此不再详述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了,A1、一种用于管理分布式系统的方法,其特征在于,包括:

获得所述分布式系统的每个服务器上运行的每个进程的进程参数;

将每个所述进程的所述进程参数发送至所述分布式系统的中心进程;

接收所述中心进程基于所述进程参数而生成的控制指令;

将所述控制指令转发到所述控制指令对应的目标进程,以使所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

A2、根据A1所述的方法,其特征在于,获得所述分布式系统的每个服务器上运行的每个进程的进程参数,包括:

在每个所述进程运行过程中,获得每个所述进程的函数开销,将所述函数开销作为所述进程参数。

A3、根据A1所述的方法,其特征在于,在获得所述分布式系统的每个服务器上运行的每个进程的进程参数之前,还包括:

接收每个所述进程发送的身份标识,并基于所述身份标识绑定每个所述进程。

A4、根据A3所述的方法,其特征在于,将所述控制指令转发到所述控制指令对应的目标进程,包括:

根据所述控制指令中包括的所述目标进程的身份标识确定所述目标进程;

将所述控制指令的协议转换为所述目标进程支持的协议;

向所述目标进程发送协议转换后的所述控制指令。

A5、根据A1所述的方法,其特征在于,所述方法还包括:

接收用于修改配置的修改文件;所述修改文件为使用go语言编译的文件;

运行所述修改文件,以修改所述配置。

A6、根据A1-A5任一项所述的方法,其特征在于,所述进程由go语言编译。

B7、一种用于管理分布式系统的方法,其特征在于,包括:

接收所述分布式系统的软件开发工具包SDK发送的所述分布式系统的每个服务器上运行的每个进程的进程参数;

基于所述进程参数,从所述进程中确定出需要进行控制的目标进程;

根据所述目标进程的所述进程参数生成用于控制所述目标进程的控制指令;

向所述SDK发送所述控制指令,以使所述SDK将所述控制指令转发至所述目标进程,进而所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

B8、根据B7所述的方法,其特征在于,基于所述进程参数,从所述进程中确定出需要进行控制的目标进程,包括:

判断每个所述进程参数是否满足表示所述进程需要被控制的预设条件;

将满足所述预设条件的所述进程参数对应的所述进程确定为所述目标进程。

B9、根据B7或B8所述的方法,其特征在于,所述进程由go语言编译。

C10、一种用于管理分布式系统的装置,其特征在于,包括:

获得模块,用于获得所述分布式系统的每个服务器上运行的每个进程的进程参数;

第一发送模块,用于将每个所述进程的所述进程参数发送至所述分布式系统的中心进程;

第一接收模块,用于接收所述中心进程基于所述进程参数而生成的控制指令;

第二发送模块,用于将所述控制指令转发到所述控制指令对应的目标进程,以使所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

C11、根据C10所述的装置,其特征在于,所述获得模块用于在每个所述进程运行过程中,获得每个所述进程的函数开销,将所述函数开销作为所述进程参数。

C12、根据C10所述的装置,其特征在于,所述装置还包括:

第二接收模块,用于在获得所述分布式系统的每个服务器上运行的每个进程的进程参数之前,接收每个所述进程发送的身份标识,并基于所述身份标识绑定每个所述进程。

C13、根据C12所述的装置,其特征在于,所述第二发送模块用于根据所述控制指令中包括的所述目标进程的身份标识确定所述目标进程;将所述控制指令的协议转换为所述目标进程支持的协议;向所述目标进程发送协议转换后的所述控制指令。

C14、根据C10所述的装置,其特征在于,所述装置还包括:

第三接收模块,用于接收用于修改配置的修改文件;所述修改文件为使用go语言编译的文件;

运行模块,用于运行所述修改文件,以修改所述配置。

C15、根据C10-C14任一项所述的装置,其特征在于,所述进程由go语言编译。

D16、一种用于管理分布式系统的装置,其特征在于,包括:

接收模块,用于接收所述分布式系统的软件开发工具包SDK发送的所述分布式系统的每个服务器上运行的每个进程的进程参数;

确定模块,用于基于所述进程参数,从所述进程中确定出需要进行控制的目标进程;

生成模块,用于根据所述目标进程的所述进程参数生成用于控制所述目标进程的控制指令;

发送模块,用于向所述SDK发送所述控制指令,以使所述SDK将所述控制指令转发至所述目标进程,进而所述目标进程执行所述控制指令,实现所述中心进程对所述目标进程的控制。

D17、根据D16所述的装置,其特征在于,所述确定模块用于判断每个所述进程参数是否满足表示所述进程需要被控制的预设条件;将满足所述预设条件的所述进程参数对应的所述进程确定为所述目标进程。

D18、根据D16或D17所述的装置,其特征在于,所述进程由go语言编译。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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