基于ETCD的虚拟网络地址高可用实现方法及系统与流程

文档序号:28555139发布日期:2022-01-19 16:03阅读:68来源:国知局
基于ETCD的虚拟网络地址高可用实现方法及系统与流程
基于etcd的虚拟网络地址高可用实现方法及系统
技术领域
1.本发明涉及计算机技术领域,具体涉及一种基于etcd的虚拟网络地址高可用实现方法及系统。


背景技术:

2.虚拟网络地址(vip)是一个不与特定计算机或特定计算机的特定网卡绑定的ip地址,在内部网络中可以被动态的映射到不同的计算机或计算机网卡上,一般用来实现连接的冗余,即高可用。
3.目前,vip的高可用性的实现大多基于使用keepalived或pacemaker此类传统的集群服务软件实现,然而,此类软件多偏向重型应用,依赖较多,且多应用于系统服务的高可用场景,使用维护较为复杂。
4.etcd是一个高可用、强一致性的分布式键值数据库,采用raft一致性算法,多用于关键数据可靠、快速地持久化存储及访问,通过分布式锁、watch等机制可实现可靠的分布式协同,具有高可用、轻量、易于部署使用及响应迅速的特点。但是现有技术中,并未对基于etcd来实现虚拟网络地址的高可用性的相关研究。
5.有鉴于此,有必要引入一种新的基于etcd的虚拟网络地址高可用的实现方法及系统,以解决上述技术问题。


技术实现要素:

6.本发明的主要目的在于提供一种基于etcd的虚拟网络地址高可用的实现方法及系统,在不共用同一套集群服务软件的前提下,减少同时故障的可能性,保证虚拟网络地址的高可用性。
7.为实现上述目的,本发明提供的一种基于etcd的虚拟网络地址高可用的实现方法,包括:
8.步骤s0,配置各个服务节点接入同一个etcd分布式数据库集群;
9.步骤s1,所述各个服务节点通过并发竞争的方式竞争获取分布式锁,将获得所述分布式锁的服务节点作为虚拟网络地址的主节点,其余未获得所述分布式锁的服务节点作为从节点;
10.步骤s2,所述主节点在所述etcd分布式数据库集群中创建带租约的key,并将所述主节点的实际ip地址以及主机信息写入所述带租约的key,然后将vip配置到所述主节点网卡上;
11.步骤s3,所述主节点定期续租所述带租约的key;
12.步骤s4,所述从节点基于etcd的watch机制监听所述主节点是否失效;
13.步骤s5,所述主节点故障导致所述主节点失效时,etcd将通知各个所述从节点,并返回所述步骤s1,确定新的主节点。
14.进一步的,还包括步骤s31,所述各个从节点通过监听的方式获取所述带租约的
key,以获取所述主节点的信息和完成所述主节点的选举。
15.进一步的,所述步骤s4包括:所述从节点基于etcd的watch机制监听所述带租约的key,判断所述主节点是否失效。
16.进一步的,所述从节点基于etcd的watch机制监听所述带租约的key,判断所述主节点是否失效的步骤,包括:在所述主节点故障时,所述主节点不能定期续租所述带租约的key,所述带租约的key到期失效,etcd将通知所有监听所述带租约的key的从节点,所述从节点收到失效通知,以判定所述主节点为失效状态。
17.进一步的,所述步骤s1包括:
18.所述各个服务节点通过并发竞争的方式竞争获取分布式锁;
19.判断当前服务节点是否获得分布式锁;
20.若是,则将获得所述分布式锁的服务节点作为vip的主节点,进入步骤s2;
21.若否,则将当前服务节点确定为从节点,进入步骤s4。
22.进一步的,所述步骤s5还包括:所述etcd分布式数据库集群将所述带租约的key失效的通知发送给所述从节点。
23.本发明还一种基于etcd的虚拟网络地址高可用的实现系统,包括接入在同一个etcd分布式数据库集群内的各个服务节点;其中,所述实现系统包括:
24.主节点选举模块,用于所述各个服务节点通过并发竞争的方式竞争获取分布式锁,将获得所述分布式锁的服务节点作为虚拟网络地址的主节点,其余未获得所述分布式锁的服务节点作为从节点;用于控制所述主节点在所述etcd分布式数据库集群中创建带租约的key,并将所述主节点的实际ip地址以及主机信息写入所述带租约的key,并将vip配置到所述主节点的网卡上;以及用于控制所述主节点对所述带租约的key定期续租,以保持所述主节点在线状态;
25.监听模块,用于控制所述从节点基于etcd的watch机制监听所述主节点是否失效;
26.主节点切换模块,用于在所述主节点失效时,通知所述主节点选举模块确定新的主节点。
27.进一步的,所述主节点选举模块还用于控制所述各个从节点通过监听的方式获取所述带租约的key,以获取所述主节点的信息和完成所述主节点的选举。
28.进一步的,所述监听模块还用于控制所述从节点基于etcd的watch机制监听所述带租约的key,判断所述主节点是否失效。
29.在本发明的技术方案中的vip的高可用性基于etcd的分布式锁及watch机制实现。集群系统内各服务节点接入同一etcd分布式数据库集群,各服务节点间通过竞争获取分布式锁,成功获得分布式锁的服务节点即成为主节点,创建带租约的特定key写入主节点信息,并将对特定key的租约进行定期续租以保持自身的主节点状态,同时,将vip配置到该服务节点的网卡上;从节点基于watch机制监听主节点创建的特定key,当主节点故障导致该特定key失效时,etcd将通知各节点,新的主节点选举将被触发,完成主节点切换,从而实现vip高可用性。本发明中的所述vip高可用基于etcd实现,与传统集群服务软件相比,具有轻量、部署运维简单及响应迅速的特点,同时,可与服务高可用分离,不共用同一套集群服务软件,减少了同时故障的可能性。
附图说明
30.图1为本发明一实施例中基于etcd的虚拟网络地址高可用的实现方法的流程图;
31.图2为本发明一实施例中的基于etcd的虚拟网络地址高可用的实现系统的网络结构示意图;
32.本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
33.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
34.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
35.请参考图1~2,为实现上述目的,本发明的一实施例中提供的一种基于etcd的虚拟网络地址高可用的实现方法及系统。
36.其中,所述基于etcd的虚拟网络地址高可用的实现方法,包括步骤:
37.步骤s0,配置各个服务节点接入同一个etcd分布式数据库集群。具体的,其中,etcd使用raft算法保持数据的强一致性,存储的数据必然全局一致,基于此实现的分布式锁,可以适用于主节点选举,具体参见步骤s1~s3。
38.步骤s1,所述各个服务节点通过并发竞争的方式竞争获取分布式锁,将获得所述分布式锁的服务节点作为vip的主节点,其余未获得所述分布式锁的服务节点作为vip的从节点。
39.步骤s2,所述主节点在所述etcd分布式数据库集群中创建带租约的key,并将所述主节点的实际ip地址以及主机信息写入所述带租约的key,然后将vip配置到所述主节点网卡上。
40.步骤s3,通过所述主节点定期续租所述带租约的key。
41.具体的,在所述步骤s1中,具体包括:
42.所述各个服务节点通过并发竞争的方式竞争获取分布式锁;
43.判断当前服务节点是否获得分布式锁;
44.若是,则将获得所述分布式锁的服务节点作为虚拟网络地址的主节点,进入步骤s2;
45.若否,则将当前服务节点确定为从节点,进入步骤s4。
46.所述步骤s3之后还包括:进一步的,还包括步骤s31,所述各个从节点通过监听的方式获取所述带租约的key,以获取所述主节点的信息和完成所述主节点的选举。
47.步骤s4,所述从节点基于etcd分布式数据库集群的watch机制监听所述主节点是否失效。
48.具体的,所述步骤s4包括:基于etcd的watch机制监听所述带租约的key,判断所述主节点是否失效。
49.优选的,在一较佳的实施例中,所述根据所述主节点的信息判断所述主节点是否失效的步骤,包括:根据所述主节点的信息获取所述带租约的key,判断所述带租约的key是否失效,以确定所述主节点失效。
50.具体的,在所述主节点失效时,所述带租约的key/lock/vip因过期失效被删除;其中,所述根据所述主节点的信息获取所述带租约的key,判断所述带租约的key是否失效,以确定所述主节点失效的步骤,所述从节点基于etcd的watch机制监听所述带租约的key,判断所述主节点是否失效的步骤,包括:在所述主节点故障时,所述主节点不能定期续租所述带租约的key,所述带租约的key到期失效,etcd将知所有监听所述带租约的key的从节点,所述从节点收到失效通知,以判定所述主节点为失效状态。
51.步骤s5,所述主节点故障导致所述主节点失效时,etcd将通知各个所述从节点,并返回所述步骤s1,确定新的主节点。
52.进一步的,所述步骤s5还包括:所述etcd分布式数据库集群将所述主节点失效的通知发送给所述各个服务节点。
53.本发明还一种基于etcd的虚拟网络地址高可用的实现系统,包括接入在同一个etcd分布式数据库集群内的各个服务节点;其中,所述实现系统包括:主节点选举模块、监听模块以及主节点切换模块。
54.所述主节点选举模块,用于所述各个服务节点通过并发竞争的方式竞争获取分布式锁,将获得所述分布式锁的服务节点作为虚拟网络地址的主节点,其余未获得所述分布式锁的服务节点作为从节点;用于控制所述主节点在所述etcd分布式数据库集群中创建带租约的key,并将所述主节点的实际ip地址以及主机信息写入所述带租约的key,并将vip配置到所述主节点的网卡上;以及用于控制所述主节点对所述带租约的key定期续租,保持所述主节点在线状态。具体的,其中,etcd使用raft算法保持数据的强一致性,存储的数据必然全局一致,基于此实现的分布式锁,可以适用于主节点选举。
55.进一步的,具体的,所述主节点选举模块还用于:
56.所述各个服务节点通过并发竞争的方式竞争获取分布式锁;
57.判断当前服务节点是否获得分布式锁;
58.若是,则将获得所述分布式锁的服务节点作为虚拟网络地址的主节点,继续进行选举配置步骤;
59.若否,则将当前服务节点确定为从节点,进入监听的步骤。
60.所述主节点选举模块还用于,控制所述各个从节点通过监听的方式获取所述带租约的key,以获取所述主节点的信息和完成所述主节点的选举。
61.所述监听模块,用于控制所述从节点基于etcd的watch机制监听所述主节点是否失效。
62.主节点切换模块,用于在所述主节点失效时,通知所述主节点选举模块确定新的主节点。进一步的,主节点切换模块还用于控制所述etcd分布式数据库集群将所述主节点失效的通知发送给所述各从节点。
63.优选的,在一较佳的实施例中,所述从节点基于etcd的watch机制监听所述主节点是否失效,包括:所述从节点基于etcd的watch机制监听所述带租约的key,判断所述主节点是否失效。
64.进一步的,所述主节点选举模块还用于控制所述各个从节点通过监听的方式获取所述带租约的key,以获取所述主节点的信息和完成所述主节点的选举。
65.在本发明的技术方案中的vip的高可用性基于etcd的分布式锁及watch机制实现。
集群系统内各服务节点接入同一etcd分布式数据库集群,各服务节点间通过竞争获取分布式锁,成功获得分布式锁的服务节点即成为主节点,创建带租约的特定key写入主节点信息,并将对特定key的租约进行定期续租以保持自身的主节点状态,同时,将vip配置到该服务节点的网卡上;从节点基于watch机制监听主节点创建的特定key,当主节点故障导致该特定key失效时,etcd将通知各节点,新的主节点选举将被触发,完成主节点切换,从而实现vip高可用性。本发明中的所述vip高可用基于etcd实现,与传统集群服务软件相比,具有轻量、部署运维简单及响应迅速的特点,同时,可与服务高可用分离,不共用同一套集群服务软件,减少了同时故障的可能性。
66.在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、或“第一实施例~第x实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料、方法步骤或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
67.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
68.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1