集群节点管理方法、装置、计算机设备及存储介质与流程

摘要: 本发明实施例涉及计算机,尤其涉及一种集群节点管理方法、装置、计算机设备及存储介质。背景技术:1、随着云计算和分布式存储技术的发展,通常需要将多台虚拟机、物理服务...
集群节点管理方法、装置、计算机设备及存储介质与流程

本发明实施例涉及计算机,尤其涉及一种集群节点管理方法、装置、计算机设备及存储介质。

背景技术:

1、随着云计算和分布式存储技术的发展,通常需要将多台虚拟机、物理服务器或容器节点组织为软件集群,以共同提供数据存储、任务处理或服务调度等功能。在现有集群部署过程中,一般需要在集群启动前确定各节点的网络地址,并将各节点的网络地址、节点角色及服务端口等信息预先写入集群配置文件,使各节点能够根据集群配置文件建立通信连接并完成集群组建。

2、然而,在云平台或虚拟化环境中,节点的网络地址通常是在虚拟机或容器实例创建后由云平台动态分配,集群配置程序难以在资源创建前获得各节点的实际网络地址。因此,现有技术通常需要在节点创建完成后人工收集网络地址,或者依赖外部管理服务集中维护节点信息,再分别生成并下发集群配置文件。该方式不仅增加了集群部署流程的复杂度,而且对外部管理服务和预设网络地址信息具有较强依赖;当节点数量、网络地址或节点运行状态发生变化时,还需要重新维护集群配置,难以满足集群自动化部署和动态组织的需要。

3、此外,在缺少预设节点网络地址和中心化管理节点的情况下,各节点难以自主发现同一集群中的其他节点,也难以基于各节点获得的节点信息确定统一的领导节点,容易造成集群节点信息不完整或节点选举结果不一致。基于此,现有技术亟需解决的技术问题是:如何在无需预先配置节点网络地址的情况下,实现集群节点的自动发现和领导节点确定。

技术实现思路

1、鉴于此,为解决上述技术问题或部分技术问题,本发明实施例提供一种集群节点管理方法、装置、计算机设备及存储介质。

2、第一方面,本发明实施例提供一种集群节点管理方法,包括:

3、针对待加入目标集群的当前节点,根据所述当前节点的节点基础信息生成心跳信息,并将所述心跳信息发送至所述目标集群对应的组播地址,所述节点基础信息包括节点标识、网络地址和启动时间;

4、监听所述组播地址以接收所述目标集群对应的其他节点发送的心跳信息,并根据接收到的心跳信息中的节点基础信息对所述当前节点的集群节点列表进行构建或更新;

5、根据所述集群节点列表中每个节点的启动时间和网络地址确定候选领导节点,生成包含所述候选领导节点的节点标识的投票信息,并将所述投票信息写入所述当前节点的心跳信息后发送至所述组播地址;

6、根据接收到的所述其他节点的心跳信息中的投票信息,确定所述目标集群的领导节点。

7、在一个可能的实施方式中,在所述将所述心跳信息发送至所述目标集群对应的组播地址之前,所述方法还包括:

8、根据所述目标集群的集群标识确定加密密钥;

9、将所述集群标识和所述节点基础信息按照预设数据格式进行编码,得到心跳载荷;

10、基于随机数,利用带认证的对称加密算法和所述加密密钥对所述心跳载荷进行加密,得到加密载荷;

11、将所述随机数和所述加密载荷按照预设报文结构进行组合,得到加密后的心跳信息,并将加密后的心跳信息发送至所述组播地址。

12、在一个可能的实施方式中,在所述监听所述组播地址以接收所述目标集群对应的其他节点发送的心跳信息之后,所述方法还包括:

13、从接收到的心跳信息中提取随机数和加密载荷,利用所述加密密钥和所述随机数对所述加密载荷进行认证解密,得到待校验心跳载荷;

14、从所述待校验心跳载荷中提取消息识别字段和集群标识;

15、在所述消息识别字段与预设识别字段一致,且提取的集群标识与所述目标集群的集群标识一致时,确定接收到的心跳信息通过有效性校验;

16、根据通过所述有效性校验的心跳信息中的节点基础信息,对所述当前节点的集群节点列表进行构建或更新。

17、在一个可能的实施方式中,所述根据接收到的心跳信息中的节点基础信息对所述当前节点的集群节点列表进行构建或更新,包括:

18、根据接收到的心跳信息中的节点标识,查询所述集群节点列表中是否存在与所述节点标识对应的节点记录;

19、在不存在与所述节点标识对应的节点记录时,根据所述节点基础信息创建节点记录,并将创建的节点记录写入所述集群节点列表;

20、在存在与所述节点标识对应的节点记录时,根据所述节点基础信息更新对应的节点记录;

21、所述方法还包括:

22、记录每次接收到所述其他节点的心跳信息时的心跳接收时间,并根据当前时间和最近一次心跳接收时间确定对应节点的心跳间隔时长,将所述心跳间隔时长记录于对应的节点记录中。

23、在一个可能的实施方式中,所述根据所述集群节点列表中每个节点的启动时间和网络地址确定候选领导节点,包括:

24、比较所述集群节点列表中每个节点的启动时间,将启动时间最早的节点确定为所述候选领导节点;

25、在存在启动时间相同的多个节点时,将所述多个节点的网络地址分别转换为地址数值,并将地址数值最小的节点确定为所述候选领导节点。

26、在一个可能的实施方式中,所述根据接收到的所述其他节点的心跳信息中的投票信息,确定所述目标集群的领导节点,包括:

27、根据每个其他节点的节点标识,从接收到的心跳信息中获取每个节点对应的最新投票信息;

28、根据每个最新投票信息中包含的节点标识,统计每个候选领导节点对应的投票数量;

29、将投票数量超过所述集群节点列表中节点总数一半的候选领导节点,确定为所述领导节点;

30、在不存在投票数量超过所述节点总数一半的候选领导节点时,将投票数量最高的候选领导节点确定为所述领导节点,在存在投票数量并列最高的多个候选领导节点时,根据所述多个候选领导节点的启动时间和网络地址,从所述多个候选领导节点中确定所述领导节点。

31、在一个可能的实施方式中,在确定所述目标集群的领导节点之后,所述方法还包括:

32、在所述集群节点列表中的节点数量达到预设节点数量,且所述当前节点的投票信息和每个所述其他节点对应的最新投票信息均包含所述领导节点的节点标识时,确定所述目标集群进入稳定状态;

33、响应于所述目标集群进入所述稳定状态,从所述集群节点列表中提取每个节点的节点标识、网络地址、节点角色和服务端口,生成集群节点配置信息;

34、通过预设应用程序接口向集群配置程序输出所述集群节点配置信息,以使所述集群配置程序根据每个节点的网络地址、节点角色和服务端口生成所述目标集群的集群配置文件。

35、第二方面,本发明实施例提供一种集群节点管理装置,包括:

36、生成模块,用于针对待加入目标集群的当前节点,根据所述当前节点的节点基础信息生成心跳信息,并将所述心跳信息发送至所述目标集群对应的组播地址,所述节点基础信息包括节点标识、网络地址和启动时间;

37、监听模块,用于监听所述组播地址以接收所述目标集群对应的其他节点发送的心跳信息,并根据接收到的心跳信息中的节点基础信息对所述当前节点的集群节点列表进行构建或更新;

38、第一确定模块,用于根据所述集群节点列表中每个节点的启动时间和网络地址确定候选领导节点,生成包含所述候选领导节点的节点标识的投票信息,并将所述投票信息写入所述当前节点的心跳信息后发送至所述组播地址;

39、第二确定模块,用于根据接收到的所述其他节点的心跳信息中的投票信息,确定所述目标集群的领导节点。

40、第三方面,本发明实施例提供一种计算机设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的集群节点管理程序,以实现上述第一方面中任一项所述的集群节点管理方法。

41、第四方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面中任一项所述的集群节点管理方法。

42、本技术实施例提供的集群节点管理方案,针对待加入目标集群的当前节点,根据当前节点的节点基础信息生成心跳信息,并将心跳信息发送至目标集群对应的组播地址;监听组播地址以接收目标集群对应的其他节点发送的心跳信息,并根据接收到的心跳信息中的节点基础信息对当前节点的集群节点列表进行构建或更新;根据集群节点列表中每个节点的启动时间和网络地址确定候选领导节点,生成包含候选领导节点的节点标识的投票信息,并将投票信息写入当前节点的心跳信息后发送至组播地址;根据接收到的其他节点的心跳信息中的投票信息,确定目标集群的领导节点。由此,通过将当前节点的节点基础信息以心跳信息的形式发送至目标集群对应的组播地址,并监听所述组播地址获取其他节点的节点基础信息,能够在无需预先配置其他节点网络地址的情况下,自动发现目标集群中的节点并构建或更新集群节点列表;进一步根据各节点的启动时间和网络地址确定候选领导节点,并通过心跳信息交换各节点的投票信息以确定领导节点,从而实现集群节点的自动发现、节点信息组织和领导节点选举,降低对人工配置及中心化管理服务的依赖,提高集群组建的自动化程度和适应性。