一种集群主机选取方法及装置制造方法及图纸

技术编号:14680110 阅读:33 留言:0更新日期:2017-02-22 13:12
本公开涉及一种集群主机选取方法及装置。所述方法包括:当前节点获取节点编号列表,所述当前节点为集群中处于在线状态的节点,所述节点编号列表包括所述集群中所有处于在线状态的节点的编号;所述当前节点判断本节点的编号是否位于所述节点编号列表的预设位置;如果所述当前节点的编号位于所述节点编号列表的预设位置,所述当前节点将本节点确定为主机。如此方案,有助于降低集群主机选取时的资源消耗,实现轻量级主机选取。

【技术实现步骤摘要】

本公开涉及计算机处理
,具体地,涉及一种集群主机选取方法及装置
技术介绍
在计算机领域,可以采用集群技术,并通过水平扩展方式,提高系统吞吐和性能。通常,集群中水平扩展的节点之间是“平等”关系,即各节点均可执行相同操作,实现相同功能,但针对某些系统级别的操作,例如,发送一条系统广播,只需要集群中的一个节点执行即可,这就涉及到集群主机选取。现有技术进行主机选取时,需要第三方设备从中协调。第三方设备以广播方式询问集群中每个节点的状态,进而结合获取到的节点状态,选取出集群主机,并将应执行操作分配给主机完成。如此方案,每执行一次系统级别的操作,都需要经过广播询问节点状态、选取主机等过程,系统资源消耗较大,不可避免的会产生性能瓶颈。
技术实现思路
本公开的目的是提供一种集群主机选取方法及装置,有助于降低集群主机选取时的资源消耗,实现轻量级主机选取。为了实现上述目的,第一方面,本公开提供一种集群主机选取方法,包括:当前节点获取节点编号列表,所述当前节点为集群中处于在线状态的节点,所述节点编号列表包括所述集群中所有处于在线状态的节点的编号;所述当前节点判断本节点的编号是否位于所述节点编号列表的预设位置;如果所述当前节点的编号位于所述节点编号列表的预设位置,所述当前节点将本节点确定为主机。可选地,如果所述节点编号列表中的编号顺序排列,则位于所述节点编号列表的预设位置的编号为最小编号或者最大编号。可选地,所述当前节点获取节点编号列表,包括:所述当前节点从数据库中读取所述节点编号列表,所述数据库用于更新所述集群中每个节点的状态。可选地,确定所述当前节点处于在线状态的方式为:所述当前节点判断在线检测线程是否按照预定周期访问数据库;如果所述在线检测线程按照预定周期访问所述数据库,所述当前节点判定本节点处于在线状态。可选地,确定所述当前节点处于在线状态后,所述方法还包括:所述当前节点挂起所述在线检测线程,并在预设挂起时长后唤醒所述在线检测线程,所述预设挂起时长小于所述预定周期。第二方面,本公开提供一种集群主机选取装置,所述装置属于当前节点,所述当前节点为集群中处于在线状态的节点,所述装置包括:列表获取模块,用于获取节点编号列表,所述节点编号列表包括所述集群中所有处于在线状态的节点的编号;第一判断模块,用于判断当前节点的编号是否位于所述节点编号列表的预设位置;主机确定模块,用于在所述当前节点的编号位于所述节点编号列表的预设位置时,将所述当前节点确定为主机。可选地,所述列表获取模块,用于从数据库中读取所述节点编号列表,所述数据库用于更新所述集群中每个节点的状态。可选地,所述装置还包括:第二判断模块,用于判断在线检测线程是否按照预定周期访问数据库;状态判定模块,用于在所述在线检测线程按照预定周期访问所述数据库时,判定所述当前节点处于在线状态。可选地,所述装置还包括:线程挂起模块,用于在确定所述当前节点处于在线状态后,挂起所述在线检测线程,并在预设挂起时长后唤醒所述在线检测线程,所述预设挂起时长小于所述预定周期。第三方面,本公开提供一种集群主机选取装置,所述装置为集群中处于在线状态的节点,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:获取节点编号列表,所述节点编号列表包括所述集群中所有处于在线状态的节点的编号;判断本节点的编号是否位于所述节点编号列表的预设位置;如果本节点的编号位于所述节点编号列表的预设位置,将本节点确定为主机。集群中所有处于在线状态的节点,均可执行本公开主机选取方案,按照相同的预设规则,判断本节点能否成为主机。具体地,当前节点先获取到包含所有在线节点的编号的列表,并判断当前节点的编号是否符合预设规则,即当前节点的编号是否位于列表的预设位置,如果与预设规则相符,则可将当前节点确定为主机。如此方案,节点只需完成自我判断即可,无需关注其他节点,也无需与任何设备通信,相对现有技术较为轻量,且有助于降低主机选取所需消耗的系统资源。本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1是本公开集群主机选取方法的流程示意图;图2是本公开中确定节点状态的流程示意图;图3是本公开集群主机选取装置的一种结构示意图;图4是本公开集群主机选取装置的另一种结构示意图。具体实施方式以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。参见图1为本公开集群主机选取方法的流程示意图,集群中处于在线状态的节点均可作为当前节点,按照图1所示方法进行主机选取。该方法可以包括以下步骤:步骤101,当前节点获取节点编号列表,所述当前节点为集群中处于在线状态的节点,所述节点编号列表包括所述集群中所有处于在线状态的节点的编号。本公开方案不需要第三方设备参与,可以直接由集群中处于在线状态的节点自行完成主机选取,实现过程简单易行,有助于节省主机选取消耗的系统资源,以及部署第三方设备所需的人力及硬件资源。本公开方案进行主机选取时,可以获取以下两方面信息。第一方面信息,确定节点状态。可以理解地,参与集群主机选取的节点均应处于在线状态,对于失效节点来说,其不具备成为主机的能力。作为一种示例,集群中的节点可以按照图2所示流程图确定节点状态,可以包括以下步骤:步骤201,所述当前节点判断在线检测线程是否按照预定周期访问数据库。步骤202,如果所述在线检测线程按照预定周期访问所述数据库,所述当前节点判定本节点处于在线状态。本公开方案中,当前节点可以执行在线检测线程,判断在线检测线程是否按照预定周期访问数据库,进而得到本节点是否处于在线的存活状态。例如,在线检测线程每隔5s向数据库发出一个请求,即预定周期可以设置为5s,这样,当前节点便可据此确定本节点的节点状态:如果当前节点每隔5s访问一次数据库,则表明当前节点处于在线状态;如果当前节点超过5s未访问数据库,则表明当前节点可能已经掉线,为失效节点。为了节省当前节点的处理资源,可以在确定当前节点处于在线状态时,将在线检测线程挂起,并在预设挂起时长后再唤醒所述在线检测线程,继续周期性的访问数据库,以示当前节点处于在线状态。需要说明的是,考虑到网络通信效果以及数据库吞吐能力,为了不影响在线检测线程周期性的访问数据库,本公开方案中的预设挂起时长小于预定周期。通常,网络通信效果越卡顿,预设挂起时长与预定周期之间的差值就越大;数据库越繁忙、压力越大,预设挂起时长与预定周期之间的差值就越大。作为一种示例,预定周期>预设挂起时长+2000毫秒。第二方面信息,获取节点编号列表。作为示例,本公开方案至少可通过以下两种方式获取节点编号列表。方式一,如上文所作介绍,集群中的每个节点均可与数据库交互,故可将节点编号、表示节点存活状态的预定周期保存于数据库中,由数据库根据节点的访问情况,维护更新集群中每个节点的状态。具体地,数据库记录有节点最近一次访问数据库的时间T访问,与预定周期相比,若T访问距离当前时间T当前超过了预定周期,则说明节点未按照预定周期访问数据库,可将该节点识别本文档来自技高网...
一种集群主机选取方法及装置

【技术保护点】
一种集群主机选取方法,其特征在于,包括:当前节点获取节点编号列表,所述当前节点为集群中处于在线状态的节点,所述节点编号列表包括所述集群中所有处于在线状态的节点的编号;所述当前节点判断本节点的编号是否位于所述节点编号列表的预设位置;如果所述当前节点的编号位于所述节点编号列表的预设位置,所述当前节点将本节点确定为主机。

【技术特征摘要】
1.一种集群主机选取方法,其特征在于,包括:当前节点获取节点编号列表,所述当前节点为集群中处于在线状态的节点,所述节点编号列表包括所述集群中所有处于在线状态的节点的编号;所述当前节点判断本节点的编号是否位于所述节点编号列表的预设位置;如果所述当前节点的编号位于所述节点编号列表的预设位置,所述当前节点将本节点确定为主机。2.根据权利要求1所述的方法,其特征在于,如果所述节点编号列表中的编号顺序排列,则位于所述节点编号列表的预设位置的编号为最小编号或者最大编号。3.根据权利要求1或2所述的方法,其特征在于,所述当前节点获取节点编号列表,包括:所述当前节点从数据库中读取所述节点编号列表,所述数据库用于更新所述集群中每个节点的状态。4.根据权利要求1所述的方法,其特征在于,确定所述当前节点处于在线状态的方式为:所述当前节点判断在线检测线程是否按照预定周期访问数据库;如果所述在线检测线程按照预定周期访问所述数据库,所述当前节点判定本节点处于在线状态。5.根据权利要求4所述的方法,其特征在于,确定所述当前节点处于在线状态后,所述方法还包括:所述当前节点挂起所述在线检测线程,并在预设挂起时长后唤醒所述在线检测线程,所述预设挂起时长小于所述预定周期。6.一种集群主机选取装置,其特征在于,所述装置属于当前节点,所述当前节点为集群中处于在线状态的节点,所述装置包括:列表获取...

【专利技术属性】
技术研发人员:赵研
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1