一种多客户端选主共识方法和服务器集群与流程

文档序号:37941685发布日期:2024-05-11 00:20阅读:13来源:国知局
一种多客户端选主共识方法和服务器集群与流程

本发明涉及备份,尤其是涉及一种多客户端选主共识方法和服务器集群。


背景技术:

1、传统数据库备份系统中,在数据库节点安装代理程序,然后连接备份系统进行数据传输、协调等备份工作,该方式比较适用单节点数据库备份。

2、但是当前数据库系统规模越来越大,单节点数据库已经无法满足当下数据库需求,大多数数据库都在往分布式多节点集群方向发展。为了提高数据的安全性,市场对集群数据库也提出了备份的要求,那么代理程序的单点模型就需要演进成集群模型。在分布式数据库节点中,由于某些备份工作具有互斥性,仅能顺序运行,无法多节点并发处理,那么就需要对多客户端代理程序进行选主,然后由选举所得主客户端来处理这些互斥性工作。并且由于分布式系统特点,其任意节点均可能离线,所以代理程序无法通过简单的询问服务端,获取当前节点状态,来保证其唯一性。

3、目前大部分备份系统,为了解决集群备份问题,引入zookeeper或者etcd等集群组件。这些组件消耗大量计算机资源,其部署将是一件令人头疼的事情,考虑到成本限制,备份系统一般无法额外增加多个节点部署,以运行分布式组件。而部署在原数据库集群中,又无法保证分布式组件的强一致性要求,其需要1/2以上节点在线才能工作;另外这类分布式组件需依赖持久化存储记录日志,增大了原数据库集群的运行风险,加大了备份代理程序对原有系统的不良影响。分布式组件随原数据库集群扩招和收缩也是一件很困难的事情。


技术实现思路

1、本发明的目的就是为了克服上述现有技术存在的缺陷、针对如备份这类需要选主的资源、成本受限系统,提供一种部署方便、资源占用少、支持客户端动态变更的多客户端选主共识方法和服务器集群,用以保证客户端选主后,可靠地运行数据库集群互斥工作。

2、本发明的目的可以通过以下技术方案来实现:

3、一种多客户端选主共识方法,该方法应用于服务端服务器中,包括以下步骤:

4、接收客户端服务器的登录请求、心跳请求或登出请求,基于存储的各客户端服务器的第一状态生成对应的登录响应、心跳响应或登出响应,该登录响应、心跳响应或登出响应基于第一有限状态机转换关系生成,并使接收的客户端服务器基于第二有限状态机转换关系和自身的第二状态更新客户端服务器的状态。

5、进一步地,所述登录请求包括是否参与选举参数。

6、进一步地,所述心跳请求包括是否参与选举参数和客户端服务器最新状态参数。

7、进一步地,所述登录响应和心跳响应均包括客户端服务器最新状态参数。

8、进一步地,所述第一有限状态机转换关系中,针对某个客户端服务器的状态转换过程包括以下步骤:

9、101)该客户端服务器的第一状态为初始状态,所述初始状态为从属节点,在接收到该客户端服务器的登录请求时,判断所述登录请求是否为参与选举的登录请求,若是,则执行步骤102),若否,则返回步骤101);

10、102)基于存储的各客户端服务器的第一状态判断是否存在其他客户端服务器处于候选节点或主节点状态,若是,则维持从属节点状态,若否,则将该客户端服务器的第一状态转为候选节点;

11、103)在tc时间内保持该客户端服务器处于候选节点,若在该tc时间内收到任何另一客户端服务器发送的带有主节点状态的心跳请求,则将该客户端服务器的第一状态转为从属节点;

12、104)在维持tc时间后,在接收到该客户端服务器的心跳请求时,更新该客户端服务器的第一状态为主节点。

13、进一步地,所述第一有限状态机转换关系中,针对某个客户端服务器的状态转换过程还包括:

14、判断是否在第一设定时间内收到心跳请求,若否,则将该客户端服务器的第一状态转为从属节点。

15、进一步地,某个客户端服务器的所述第二有限状态机转换关系中,状态转换过程包括以下步骤:

16、201)该客户端服务器的第二状态为初始状态,所述初始状态为从属节点,根据接收到的登录响应进行状态转换,若登录响应中包含从属节点状态参数,则维持从属节点状态,若登录响应中包含候选节点状态参数,则将该客户端服务器的第二状态转为候选节点;

17、202)根据接收到的心跳响应进行状态转换,若心跳响应中包含主节点状态参数,且该客户端服务器的第二状态为候选节点,则将该客户端服务器的第二状态转为主节点,否则判断心跳响应中包含的客户端服务器最新状态参数是否与该客户端服务器的第二状态相同,若是,则状态维持,若否,则将该客户端服务器的第二状态转为从属节点,返回步骤202)。

18、进一步地,某个客户端服务器的所述第二有限状态机转换关系中,状态转换过程还包括:

19、判断请求响应间隔时间是否超过第二设定时间,若是,则将该客户端服务器的第二状态转为从属节点。

20、本发明还提供一种多客户端选主共识方法,该方法应用于客户端服务器中,包括以下步骤:

21、根据配置信息生成登录请求、心跳请求或登出请求,接收对应的登录响应、心跳响应或登出响应,该登录响应、心跳响应或登出响应基于服务端服务器存储的各客户端服务器的第一状态以及第一有限状态机转换关系生成,根据所述登录响应、心跳响应或登出响应、第二有限状态机转换关系和自身的第二状态更新客户端服务器的状态。

22、本发明还提供一种服务器集群,包括多个客户端服务器和一个服务端服务器,所述服务端服务器接收客户端服务器的登录请求、心跳请求或登出请求,基于存储的各客户端服务器的第一状态生成对应的登录响应、心跳响应或登出响应,该登录响应、心跳响应或登出响应基于第一有限状态机转换关系生成;

23、所述客户端服务器根据配置信息生成登录请求、心跳请求或登出请求,接收对应的登录响应、心跳响应或登出响应,根据所述登录响应、心跳响应或登出响应、第二有限状态机转换关系和自身的第二状态更新客户端服务器的状态。

24、与现有技术相比,本发明具有以下有益效果:

25、(1)本发明仅利用客户端和服务端消息通讯和各自状态机独立转换实现了多客户端选主的过程,无需客户端之间进行通讯协调,降低了客户端之间的耦合性,便于客户端动态变更,方便备份系统进行部署。

26、(2)本发明能够严格保证集群中客户端唯一性,且无需使用强一致性分布式算法,不依赖持久化存储写入日志,减少了系统资源消耗,资源占用少。

27、(3)本发明在任意节点故障时,无需进行分布式日志同步,降低了故障恢复所需时间。



技术特征:

1.一种多客户端选主共识方法,其特征在于,该方法应用于服务端服务器中,包括以下步骤:

2.根据权利要求1所述的多客户端选主共识方法,其特征在于,所述登录请求包括是否参与选举参数。

3.根据权利要求1所述的多客户端选主共识方法,其特征在于,所述心跳请求包括是否参与选举参数和客户端服务器最新状态参数。

4.根据权利要求1所述的多客户端选主共识方法,其特征在于,所述登录响应和心跳响应均包括客户端服务器最新状态参数。

5.根据权利要求1所述的多客户端选主共识方法,其特征在于,所述第一有限状态机转换关系中,针对某个客户端服务器的状态转换过程包括以下步骤:

6.根据权利要求5所述的多客户端选主共识方法,其特征在于,所述第一有限状态机转换关系中,针对某个客户端服务器的状态转换过程还包括:

7.根据权利要求1所述的多客户端选主共识方法,其特征在于,某个客户端服务器的所述第二有限状态机转换关系中,状态转换过程包括以下步骤:

8.根据权利要求7所述的多客户端选主共识方法,其特征在于,某个客户端服务器的所述第二有限状态机转换关系中,状态转换过程还包括:

9.一种多客户端选主共识方法,其特征在于,该方法应用于客户端服务器中,包括以下步骤:

10.一种服务器集群,包括多个客户端服务器和一个服务端服务器,其特征在于,


技术总结
本发明涉及一种多客户端选主共识方法和服务器集群,所述方法包括以下步骤:接收客户端服务器的登录请求、心跳请求或登出请求,基于存储的各客户端服务器的第一状态生成对应的登录响应、心跳响应或登出响应,该登录响应、心跳响应或登出响应基于第一有限状态机转换关系生成,并使接收的客户端服务器基于第二有限状态机转换关系和自身的第二状态更新客户端服务器的状态。与现有技术相比,本发明具有部署方便、资源占用少、支持客户端动态变更等优点,严格保证集群中客户端唯一性,以保证客户端选主后,可靠地运行数据库集群互斥工作。

技术研发人员:康亮,童飞文,孙洪标,王怡清
受保护的技术使用者:上海天玑科技股份有限公司
技术研发日:
技术公布日:2024/5/10
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1