分布式系统及该分布式系统的扩容方法与流程

文档序号:13908519阅读:487来源:国知局
分布式系统及该分布式系统的扩容方法与流程
本发明涉及it(互联网技术,internettechnology,简称it)和ct(电信网技术,communitytechnology,简称ct)领域,特别涉及一种分布式系统及该分布式系统的扩容方法。
背景技术
:分布式系统是建立在网络之上的软件系统,具有高度的内聚性和透明性,使得每一个数据库的分布节点高度自治,且每一个数据库的分布节点对用户的应用来说都是透明的,看不出是本地还是远程,所以分布式系统的出现解决了大规模计算和并行计算的问题,受到广大用户的青睐。目前,常见的分布式系统的架构一般采用主从方式,即主节点负责接收和分发任务,多个从节点(也叫计算节点)执行具体的任务。主节点只做分发,不会成为系统瓶颈;而执行任务的从节点往往会随着计算量的增加和资源利用率的上升成为瓶颈。这时就需要对分布式系统进行扩容,常见的扩容方法就是采用手动方式增加一个或多个计算节点,此种扩容方法虽然具有一定的效果,但是扩容粒度较粗,且效率较低。技术实现要素:基于此,本发明的目的在于提出一种具有高效率的分布式系统及该分布式体统的扩容方法,所述扩容方法优化了所述分布式系统的扩容过程,以更精确的方式对扩容过程中所需资源进行按需分配,实现扩容过程的自动化。本发明提供一种分布式系统的扩容方法,所述分布式系统包括主节点,多个计算节点,所述主节点负责接收和分配任务,所述计算节点执行所述主节点分配的对应的任务,进一步包括缓存节点及观测者,所述扩容方法包括:所述缓存节点记录分配给每个所述计算节点的队列阻塞信息,并传送给所述观测者;所述主节点接收每个所述计算节点定期上报的自身的资源利用率信息,并传送给所述观测者;所述观测者收集所述队列阻塞信息、所述资源利用率信息,并判断每个所述计算节点是否超过自身预设的吞吐量阀值,若未超过,则以增加线程的方式对每个所述计算节点的内部进行第一次扩容。所述分布式系统的扩容方法,其中,所述分布式系统还包括资源管理系统,若每个所述计算节点都超过自身预设的吞吐量阀值,则判断所述计算节点是否超过预设的资源利用率阀值,若超过,则所述资源管理系统分配所需的硬件资源和软件镜像,以增加新的计算节点的方式进行第二次扩容。所述分布式系统的扩容方法,其中,所述第一次扩容包括:所述观测者接收所述主节点主动发出的扩容申请,并发出第一次扩容命令;所述计算节点接收所述第一次扩容命令,计算所需增加的线程数量并传送给所述主节点;所述观测者接收所述主节点传送的所述线程数量,并判断所述线程数量是否超过预设的上限值,若未超过,则所述计算节点根据所需增加的所述线程数量进行扩容,若超过,则对另外的所述计算节点以增加线程的方式进行扩容。所述分布式系统的扩容方法,其中,所述第二次扩容包括:所述观测者计算需增加的新的计算节点的数量及所述新的计算节点所需的硬件资源和加载运行软件映像,并发送第二次扩容命令给所述资源分配系统;所述资源分配系统接收所述第二次扩容命令,分配所需的硬件资源和加载运行软件映像,并通过容器方式启动所述新的计算节点;所述新的计算节点完成启动后,向所述缓存节点申请消息缓存并接收所述缓存节点完成的分配结果,同时向所述主节点发出加入请求;所述主节点接收加入请求后发布新的计算任务,完成第二次扩容。所述分布式系统的扩容方法,其中,当所述资源分配系统包括基础设施服务系统和容器集群管理系统时,所述观测者需先向所述基础设施服务系统申请新的计算节点所需的硬件资源,再向所述容器集群管理系统申请新的计算节点所需的软件镜像,所述容器集群管理系统通过容器方式启动新的计算节点;当所述资源分配系统为平台服务系统时,所述观测者向所述平台服务系统申请新的计算节点所需的硬件资源及软件镜像,所述平台服务系统通过容器方式启动新的计算节点。相较现有技术,本发明所述扩容方法中,先对每个所述计算节点的自身进行扩容,当所有的所述计算节点的自身完成扩容的数量大于预设的数量阀值时,所述资源分配系统按所需的硬件资源和加载运行软件映像来增加新的所述计算节点进行扩容,所以所述扩容方法优化了所述分布式系统的扩容过程,实现了扩容的自动化,提升了扩容的效率。一种分布式系统,包括主节点,多个计算节点,所述主节点负责接收和分配任务,所述计算节点执行所述主节点分配的对应的任务,进一步包括缓存节点及观测者;所述缓存节点位于所述主节点和所述计算节点之间,用于记录分配给每个所述计算节点的队列阻塞信息,并传送给所述观测者;所述主节点用于接收每个所述计算节点定期上报的自身的资源利用率信息,并传送给所述观测者;所述观测者用于收集所述队列阻塞信息、所述资源利用率信息,并判断每个所述计算节点是否超过自身预设的吞吐量阀值,若未超过,则以增加线程的方式对每个所述计算节点的内部进行第一次扩容。所述分布式系统,其中,所述分布式系统还包括资源管理系统,所述资源分配系统用于分配所需的硬件资源和软件镜像,若每个所述计算节点都超过自身预设的吞吐量阀值,则判断所述计算节点是否超过预设的资源利用率阀值,若超过,则以增加新的计算节点的方式进行第二次扩容。所述分布式系统,其中,所述第一次扩容包括:所述观测者用于接收所述主节点主动发出的扩容申请,并发出第一次扩容命令;所述计算节点用于接收所述第一次扩容命令,计算所需增加的线程数量并传送给所述主节点;所述观测者用于接收所述主节点传送的所述线程数量,并判断所述线程数量是否超过预设的上限值,若未超过,则所述计算节点根据所需增加的所述线程数量进行扩容,若超过,则对另外的所述计算节点以增加线程的方式进行扩容。所述分布式系统,其中,所述第二次扩容包括:所述观测者用于计算需增加的新的计算节点的数量及所述新的计算节点所需的硬件资源和加载运行软件映像,并发送第二次扩容命令给所述资源分配系统;所述资源分配系统用于接收所述第二次扩容命令,分配所需的硬件资源和加载运行软件映像,并通过容器方式启动所述新的计算节点;所述新的计算节点完成启动后,用于向所述缓存节点申请消息缓存并接收所述缓存节点完成的分配结果,同时向所述主节点发出加入请求;所述主节点用于接收所述新的计算节点的加入请求并发布新的计算任务,完成第二次扩容。所述分布式系统,其中,当所述资源分配系统包括基础设施服务系统和容器集群管理系统时,所述观测者用于先向所述基础设施服务系统申请新的计算节点所需的硬件资源,再向所述容器集群管理系统申请新的计算节点所需的软件镜像,所述容器集群管理系统通过容器方式启动新的计算节点;当所述资源分配系统为平台服务系统时,所述观测者用于向所述平台服务系统申请新的计算节点所需的硬件资源及软件镜像,所述平台服务系统通过容器方式启动新的计算节点。附图说明本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1是本发明中分布式系统的结构框图;图2是本发明第一实施例中分布式系统的扩容方法的流程图;图3是本发明第二实施例中分布式系统的扩容方法的流程图;图4是本发明第一实施例中第一次扩容的扩容流程图;图5是本发明第二实施例中第二次扩容的扩容流程图;图6是本发明第三实施例中基于基础设施服务系统的扩容流程图;图7是本发明第四实施例中基于平台服务系统的扩容流程图。主要元件符号说明:主节点10缓存节点11计算节点12观测者13资源分配系统14如下具体实施方式将结合上述附图进一步说明本发明。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。在本发明的描述中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不能理解为对本发明的限制。参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。请参阅图1,本发明提供一种分布式系统,包括主节点10,多个计算节点12,所述主节点10负责接收和分配任务,所述计算节点12执行所述主节点10分配的对应的任务,进一步包括缓存节点11及观测者13;所述缓存节点11位于所述主节点10和所述计算节点12之间,用于记录分配给每个所述计算节点12的队列阻塞信息,并传送给所述观测者13;所述主节点10用于接收每个所述计算节点12定期上报的自身的资源利用率信息,并传送给所述观测者13;所述观测者13用于收集所述队列阻塞信息、所述资源利用率信息,并判断每个所述计算节点12是否超过自身预设的吞吐量阀值,若未超过,则以增加线程的方式对每个所述计算节点12的内部进行第一次扩容。所述分布式系统还包括资源管理系统14,所述资源分配系统14用于分配所需的硬件资源和软件镜像,若每个所述计算节点12都超过自身预设的吞吐量阀值,则判断所述计算节点12是否超过预设的资源利用率阀值,若超过,则以增加新的计算节点12的方式进行第二次扩容。当所述资源分配系统14包括基础设施服务系统和容器集群管理系统时,所述观测者13用于先向所述基础设施服务系统申请新的计算节点12所需的硬件资源,再向所述容器集群管理系统申请新的计算节点12所需的软件镜像,所述容器集群管理系统通过容器方式启动新的计算节点12;当所述资源分配系统14为平台服务系统时,所述观测者13用于向所述平台服务系统申请新的计算节点12所需的硬件资源及软件镜像,所述平台服务系统通过容器方式启动新的计算节点12。上述分布式系统中,所述队列阻塞信息包括队列阻塞时间节点、位置,以及队列阻塞信息重发的次数。所述资源利用率包括cpu使用百分比、剩余内存百分比及剩余磁盘百分比。请参阅图2,本发明第一实施例中提供的一种分布式系统的扩容方法,所述扩容方法的步骤包括:步骤s201,所述缓存节点11记录分配给每个所述计算节点12的队列阻塞信息,并传送给所述观测者13;步骤s202,所述主节点10接收每个所述计算节点12定期上报的自身的资源利用率信息,并传送给所述观测者13;步骤s203,所述观测者13收集所述队列阻塞信息、所述资源利用率信息,并判断每个所述计算节点12是否超过自身预设的吞吐量阀值,若未超过,则以增加线程的方式对每个所述计算节点12的内部进行第一次扩容。请参阅图3,为本发明第二实施例中提供的一种分布式系统的扩容方法,所述扩容方法的步骤包括:步骤s301,所述缓存节点11记录分配给每个所述计算节点12的队列阻塞信息,并传送给所述观测者13;步骤s302,所述主节点10接收每个所述计算节点12定期上报的自身的资源利用率信息,并传送给所述观测者13;步骤s303,所述观测者13收集所述队列阻塞信息、所述资源利用率信息,并判断每个所述计算节点12是否超过自身预设的吞吐量阀值,步骤s304,若未超过,则以增加线程的方式对每个所述计算节点12的内部进行第一次扩容。步骤s305,若超过,则判断所述计算节点12是否超过预设的资源利用率阀值,若超过,则所述资源管理系统14分配所需的硬件资源和软件镜像,以增加新的计算节点12的方式进行第二次扩容。请参阅图4,为本发明第一实施例中第一次扩容的扩容方法,所述第一次扩容的步骤包括:步骤s401,所述观测者13接收所述主节点10主动发出的扩容申请,并发出第一次扩容命令;步骤s402,所述计算节点12接收所述第一次扩容命令,计算所需增加的线程数量并传送给所述主节点10;步骤s403,所述观测者13接收所述主节点10传送的所述线程数量,并判断所述线程数量是否超过预设的上限值,若未超过,则所述计算节点12根据所需增加的所述线程数量进行扩容,若超过,则对另外的所述计算节点12以增加线程的方式进行扩容。请参阅图5,为本发明第二实施例中第二次扩容的扩容方法,所述第二次扩容的步骤包括:步骤s501,所述观测者13计算需增加的新的计算节点12的数量及所述新的计算节点12所需的硬件资源和加载运行软件映像,并发送第二次扩容命令给所述资源分配系统14;步骤s502,所述资源分配系统14接收所述第二次扩容命令,分配所需的硬件资源和加载运行软件映像,并通过容器方式启动所述新的计算节点12;步骤s503,所述新的计算节点12完成启动后,向所述缓存节点11申请消息缓存并接收所述缓存节点11完成的分配结果,同时向所述主节点10发出加入请求;步骤s504,所述主节点10接收加入请求后发布新的计算任务,完成第二次扩容。上述扩容过程中,所述分布式系统结合定期收集和主动触发实现扩容监测和触发。定期收集包括所述观测者13收集每个所述计算节点12的吞吐量,以及每个所述计算节点12的自身的资源利用率,主动触发是指在所述观测者13的两个收集周期之间。当每个所述计算节点12的自身的吞吐量或资源利用率达到预设的阈值时,主动发起扩容,当未达到所述资源利用率阀值时,则不做处理,当达到所述资源利用率阀值时,所述观测者13接收所述主节点10主动发出的扩容申请,并发出第一次扩容命令。上述第一次扩容过程中,每个所述计算节点12持续上报自身的资源利用率的使用情况,逐一对每个所述计算节点12进行第一次扩容,当有80%(可由所述观测者13自行设置)以上的所述计算节点12的资源利用率都超过预设的资源利用率阀值时,所述观测者13发出第二次扩容命令。请参阅图6,为本发明第三实施例中提供的基于基础设施服务系统的扩容方法,当80%以上的所述计算节点12的资源利用率都超过预设的资源利用率阀值时,所述观测者13需先向所述基础设施服务系统申请新的所述计算节点12所需的硬件资源,再向所述容器集群管理系统申请新的所述计算节点12所需的软件镜像,所述容器集群管理系统通过容器方式启动新的所述计算节点12。其中,所述扩容方法的步骤包括:步骤s601,所述观测者13需先向所述基础设施服务系统申请新的所述计算节点12所需的硬件资源,再向所述容器集群管理系统申请新的所述计算节点12所需的软件镜像;步骤s602,根据所述观测者13计算需增加的所述计算节点12的数量,所述基础设施服务系统分配所需的硬件资源,所述容器集群管理系统分配加载运行软件映像;步骤s603,所述容器集群管理系统通过容器方式启动新增加的所述计算节点12;步骤s604,新增加的所述计算节点12完成启动后,向所述缓存节点11申请消息缓存并接收所述缓存节点11完成的分配结果,同时向所述主节点10发出加入请求;步骤s605,所述主节点10收到加入请求后发布新的计算任务,完成扩容。请参阅图7,为本发明第四实施例中基于平台服务系统的扩容方法,当80%以上的所述计算节点12的资源利用率都超过预设的资源利用率阀值时,所述观测者13向所述平台服务系统申请新的所述计算节点12所需的硬件资源及软件镜像,所述平台服务系统通过容器方式启动新的所述计算节点12。其中,所述扩容方法的步骤包括:步骤s701,所述观测者13向所述平台服务系统申请新的所述计算节点12所需的硬件资源及软件镜像;步骤s702,所述平台服务系统通过所述观测者13计算需增加的所述计算节点12的数量来分配所需的硬件资源和加载运行软件映像;步骤s703,所述平台服务系统通过容器方式启动新增加的所述计算节点12;步骤s704,新增加的所述计算节点12完成启动后,向所述缓存节点11申请消息缓存并接收所述缓存节点11完成的分配结果,同时向所述主节点10发出加入请求;步骤s705,所述主节点10收到加入请求后发布新的计算任务,完成扩容。综上,本发明所述扩容方法中,先对每个所述计算节点12的自身进行扩容,当80%的所有的所述计算节点12的自身完成扩容时,所述资源分配系统14按所需的硬件资源和加载运行软件映像来增加新的所述计算节点12进行扩容,所以所述扩容方法优化了所述分布式系统的扩容过程,实现了扩容的自动化,提升了扩容的效率。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1