一种微服务集群的节点选主方法、系统、设备及介质技术方案

技术编号:31693934 阅读:21 留言:0更新日期:2022-01-01 10:53
本发明专利技术涉及一种微服务集群的节点选主方法、系统、设备及介质,其中,节点选主方法包括:选主服务集群与待选主集群中的每个节点交互,以接收所述待选主集群注册的集群信息以及更新的节点状态;所述选主服务集群依据集群信息和节点状态确定待选主集群的主节点信息。本发明专利技术将选主功能微服务化并且组成状态无关的服务集群,解放了其他服务的职能,使得其他待选主集群不再关注如何选主,只需从选主服务集群获得选主结果,且保证选主结果在集群中的一致性。同时,本发明专利技术的选主服务采用插件化架构设计,能够根据具体业务定制不同的选主策略,只需替换不同的选主算法插件,即可实现基于不同策略和算法的选主功能。策略和算法的选主功能。策略和算法的选主功能。

【技术实现步骤摘要】
一种微服务集群的节点选主方法、系统、设备及介质


[0001]本专利技术涉及通信
,尤其涉及一种微服务集群的节点选主方法、系统、设备及介质。

技术介绍

[0002]在微服务集群架构中,有很多个微服务各自组成集群,如果每个服务单独处理集群节点间的选主问题,这将导致集群间的网络结构非常复杂,而且也违背了微服务只专注于一个单一功能的设计原则。
[0003]现有的选主技术存在两种方案:(1)采用ZooKeeper这类开源部件,使用这类开源部件参与选主的参数比较单一,仅能根据节点的是否活动判断是否重新选择主节点;(2)采用定制的选主逻辑,这种方案一般内置在各个具体的业务服务中,每个服务都有自己的一套选主逻辑,维护和管理及其复杂。

技术实现思路

[0004](一)要解决的技术问题
[0005]鉴于现有技术的上述缺点、不足,本专利技术提供一种微服务集群的节点选主方法、系统、设备及介质,其解决了现有选主技术中采用开源部件参与选主的参数单一和限制条件较多,而采用定制的选主逻辑则维护和管理复杂的技术问题。
[0006](二)技术方案
[0007]为了达到上述目的,本专利技术采用的主要技术方案包括:
[0008]第一方面,本专利技术实施例提供一种微服务集群的节点选主方法,一个微服务在一个或多个服务器上部署多份实例,每份实例为一个服务节点,同一个微服务的所有节点构成一个集群,集群内各节点间的节点选主方法包括:
[0009]选主服务集群与待选主集群中的每个节点交互,以接收所述待选主集群注册的集群信息以及更新的节点状态;
[0010]所述选主服务集群依据集群信息和节点状态确定待选主集群的主节点信息;
[0011]其中,所述选主服务集群是通过将选主功能封装为一个微服务并部署为集群得到的,所述选主服务集群各节点间仅进行选主数据的交互和决策,与服务器状态无关,即所述选主服务集群各节点间不再需要进行选主。
[0012]优选地,选主服务集群与待选主集群中的每个节点交互,以接收所述待选主集群注册的集群信息以及更新的节点状态包括:
[0013]待选主集群的每个节点在启动时或运行中动态加载选主服务的客户端组件;所述客户端组件包括用于注册集群信息和更新节点状态的交互接口;
[0014]在待选主集群内节点与选主服务集群建立连接之后,所述待选主集群节点通过所述交互接口使用RPC通讯机制向所述选主服务集群注册集群信息和周期性地更新节点状态信息;
[0015]其中,所述集群信息包含描述一个集群的集群唯一标识、该集群内所有节点的节点唯一标识、节点地址以及该节点访问的选主服务集群节点地址;
[0016]所述节点状态信息包含该节点的唯一标识、所在集群标识、以及节点状态权值,所述节点状态权值为所述待选主集群节点根据自身运行状态计算出的用于描述节点健康程度的数值。
[0017]优选地,还包括:
[0018]所述待选主集群内各节点周期性或所述节点状态权值变化时向选主服务集群发送权值信息;所述权值信息包括:权值数值、时间戳、节点标识和是否上一任主节点的标记;所述时间戳为上报权值信息的时间戳;
[0019]所述选主服务集群将待选主服务节点上报的所述权值信息与当前主节点权值信息比较来确定是否需要启动选主流程;若需要,则选主服务集群发起选主流程来确定待选主集群中新的主节点信息,并将主节点信息发送给待选主集群中的各节点。
[0020]优选地,所述选主服务集群将所述待选主集群内所述节点中权值最大的一个节点作为主节点;
[0021]若存在多个一样权值最大的节点,则将判断这些节点中是否存在上一任的主节点,若存在,则将上一任的主节点作为当前的主节点,否则,将时间戳最新的权值最大的节点作为主节点;若多个节点的时间戳也相同,则将权值最大的、时间戳最新的且节点唯一标识最大的节点作为主节点。
[0022]优选地,所述选主服务集群基于预设的选主算法插件构建而成,所述选主算法插件用于依据用户所需替换不同的选主算法;
[0023]其中,所述选主算法插件采用自选算法实现选主逻辑,所述自选算法包括Paxos算法和Raft算法。
[0024]优选地,若存在2N个节点,分裂成N+N两个独立的块时,将无法进行选主,所述选主算法插件支持通过添加虚拟节点形成2N+1个节点来确保选主成功;
[0025]其中,所述虚拟节点是指存在节点定义,但是没有运行具体服务的抽象节点,因此虚拟节点的节点信息由其他实际节点在向选主服务集群注册时提供,且不向选主服务集群汇报虚拟节点的状态,即虚拟节点仅参与选主投票但不发起竞选。
[0026]优选地,若待选主集群使用1:1主备冗余配置时,所述选主服务集群支持采用1:1主备选择策略。
[0027]第二方面,本专利技术实施例提供一种微服务集群的节点选主系统,包括:
[0028]服务框架模块,用于基于预设的标准接口和插件化设计构建选主服务集群;
[0029]选主算法插件模块,基于所述服务框架模块和预设的选主算法构建而成,用于供所述选主服务集群加载;
[0030]选主服务客户端模块,依据预设的标准接口和RPC通讯协议构建而成,用于提供待选主集群内各节点与选主服务集群的交互接口,通过所述交互接口向所述选主服务集群注册集群信息和更新权值,也用于从所述选主服务集群接收新的主节点信息;
[0031]集群信息和节点信息构建模块,用于在待选主集群各节点在向选主服务集群注册集群信息和更新权值时,构建集群信息并计算当前的节点权值;
[0032]主节点信息确定模块,用于依据集群信息和节点状态确定待选主集群的主节点信
息并发送至所述待选主服务集群各节点。
[0033]第三方面,本专利技术实施例提供一种微服务集群的节点选主设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的一种微服务集群的节点选主方法步骤。
[0034]第四方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上所述的一种微服务集群的节点选主方法步骤。
[0035](三)有益效果
[0036]本专利技术将选主功能微服务化,解放了其他服务的职能,使得其他微服务集群不再关注如何选主,只需向选主服务集群发送选主参数即可得到选主结果,且使得选主结果在集群中保证了一致性。同时,本专利技术的选主逻辑采用插件化设计,能够根据具体业务定制不同的选主策略,只需替换不同的选主插件,即可实现基于不同策略和算法的选主。
附图说明
[0037]图1为本专利技术提供的一种微服务集群的节点选主方法的流程示意图;
[0038]图2为本专利技术提供的一种微服务集群的节点选主方法的步骤S1的具体流程示意图;
[0039]图3为本专利技术提供的一种微服务集群的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务集群的节点选主方法,其特征在于,一个微服务在一个或多个服务器上部署多份实例,每份实例为一个服务节点,同一个微服务的所有节点构成一个集群,集群内各节点间的节点选主方法包括:选主服务集群与待选主集群中的每个节点交互,以接收所述待选主集群注册的集群信息以及更新的节点状态;所述选主服务集群依据集群信息和节点状态确定待选主集群的主节点信息;其中,所述选主服务集群是通过将选主功能封装为一个微服务并部署为集群得到的,所述选主服务集群各节点间仅进行选主数据的交互和决策,与服务器状态无关,即所述选主服务集群各节点间不再需要进行选主。2.如权利要求1所述的一种微服务集群的节点选主方法,其特征在于,选主服务集群与待选主集群中的每个节点交互,以接收所述待选主集群注册的集群信息以及更新的节点状态包括:待选主集群的每个节点在启动时或运行中动态加载选主服务的客户端组件;所述客户端组件包括用于注册集群信息和更新节点状态的交互接口;在待选主集群内节点与选主服务集群建立连接之后,所述待选主集群节点通过所述交互接口使用RPC通讯机制向所述选主服务集群注册集群信息和周期性地更新节点状态信息;其中,所述集群信息包含描述一个集群的集群唯一标识、该集群内所有节点的节点唯一标识、节点地址以及该节点访问的选主服务集群节点地址;所述节点状态信息包含该节点的唯一标识、所在集群标识、以及节点状态权值,所述节点状态权值为所述待选主集群节点根据自身运行状态计算出的用于描述节点健康程度的数值。3.如权利要求2所述的一种微服务集群的节点选主方法,其特征在于,还包括:所述待选主集群内各节点周期性或所述节点状态权值变化时向选主服务集群发送权值信息;所述权值信息包括:权值数值、时间戳、节点标识和是否上一任主节点的标记;所述时间戳为上报权值信息的时间戳;所述选主服务集群将待选主服务节点上报的所述权值信息与当前主节点的权值信息比较来确定是否需要启动选主流程;若需要,则选主服务集群发起选主流程来确定待选主集群中新的主节点信息,并将主节点信息发送给待选主集群中的各节点。4.如权利要求3所述的一种微服务集群的节点选主方法,其特征在于,所述选主服务集群将所述待选主集群内所述节点中权值最大的一个节点作为主节点;若存在多个一样权值最大的节点,则将判断这些节点中是否存在上一任的主节点,若存在,则将上一任的主节点作为当前的主节点,否则,将时间戳最新的权值最大的节点作为主节点;若多个节点的时间戳也相同,则将权值最大的、时间戳最...

【专利技术属性】
技术研发人员:韦群跃姚罕琦王长征吴欣周康韵任远
申请(专利权)人:浙江中控技术股份有限公司
类型:发明
国别省市:

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

1