分布式系统中主节点的选取方法和装置制造方法及图纸

技术编号:15749945 阅读:496 留言:0更新日期:2017-07-03 16:02
本发明专利技术公开了一种分布式系统中主节点的选取方法和装置,属于互联网领域。所述方法包括:第一分布式节点接收客户端发送的第一数据访问请求,第一数据访问请求为通过分布式系统的主节点进行数据访问的请求,第一分布式节点为分布式系统中任一分布式节点,当第一分布式节点不为分布式系统的主节点时,基于存储的主节点标识,将第一数据访问请求发送给分布式系统的主节点,当确定第一数据访问请求无法发送至分布式系统的主节点时,确定分布式系统的主节点发生故障,并发起主节点选举请求,如果第一分布式节点选举成功,则确定第一分布式节点为分布式系统的主节点。本发明专利技术极大地节省了通信带宽,提高了分布式系统的工作效率。

【技术实现步骤摘要】
分布式系统中主节点的选取方法和装置
本专利技术涉及互联网领域,特别涉及一种分布式系统中主节点的选取方法和装置。
技术介绍
随着互联网技术的快速发展,分布式系统的应用范围越来越广。由于分布式系统是由多个自治的计算机节点作为分布式节点,通过通信网络组成的机群系统,且该分布式系统可以作为服务器侧来为客户端提供数据,因此客户端可以通过该分布式系统中的任意一个分布式节点进行数据访问。而为了保证客户端通过该分布式系统中的任意一个分布式节点访问到的数据都是一致的,一般将该分布式系统中的分布式节点分为一个主节点和多个从节点,主节点不仅可以对自身存储的数据进行修改,还可以对该多个从节点中存储的数据进行修改,从而保证该分布式系统中数据的一致性。而分布式系统中的主节点一般是通过选取得到,因此,亟需一种分布式系统中主节点的选取方法。现有技术中,当该分布式系统创建完成之后,该分布式系统可以从包括的多个分布式节点中,随机选择一个分布式节点作为主节点,并将该分布式系统中除该主节点之外的分布式节点作为从节点。之后,为了保证该主节点和多个从节点之间的正常通信,该主节点必须按照固定周期向该多个从节点发送心跳消息,该心跳消息用于确定该主节点是否正常运行。对于该多个从节点中的任一从节点,当该从节点接收到该心跳消息时,确定该主节点正常运行。而当该从节点未接收到该心跳消息时,确定该主节点发生故障,该从节点可以向该分布式系统中除该从节点之外的其他分布式节点发送主节点选举请求,该主节点选举请求用于确定是否将用于发送该主节点选举请求的分布式节点选举为该分布式系统的主节点,当该从节点选举成功时,将该从节点确定为该分布式系统的主节点,并将该分布式系统中该主节点之外的分布式节点作为从节点,返回按照固定周期向该多个从节点发送心跳消息的步骤。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:由于现有技术中,该分布式系统中的主节点需要按照固定周期向该分布式系统中的所有从节点发送心跳信息,占用了大量的通信带宽,浪费资源。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种分布式系统中主节点的选取方法和装置。所述技术方案如下:第一方面,提供了一种分布式系统中主节点的选取方法,所述方法包括:第一分布式节点接收客户端发送的第一数据访问请求,所述第一数据访问请求为通过分布式系统的主节点进行数据访问的请求,所述第一分布式节点为所述分布式系统中任一分布式节点;当所述第一分布式节点不为所述分布式系统的主节点时,基于存储的主节点标识,将所述第一数据访问请求发送给所述分布式系统的主节点;当确定所述第一数据访问请求无法发送至所述分布式系统的主节点时,确定所述分布式系统的主节点发生故障,并发起主节点选举请求;如果所述第一分布式节点选举成功,则确定所述第一分布式节点为所述分布式系统的主节点。在本专利技术实施例中,客户端可以从该分布式系统中随机选取一个分布式节点,将该分布式节点确定为第一分布式节点,并向该第一分布式节点发送第一数据访问请求,当该第一分布式节点不为主节点,将该第一数据访问请求发送给主节点,当该第一分布式节点确定该第一数据访问请求无法发送至主节点时,该第一分布式节点可以确定主节点故障,并发起主节点选举请求,从而不需要依靠心跳消息来判断该主节点是否故障,因此该分布式系统中的主节点不需要按照固定周期向该分布式系统中的其他分布式节点发送心跳消息,极大地节省了通信带宽,进一步提高了该分布式系统的工作效率。结合第一方面,在上述第一方面的第一种可能的实现方式中,所述确定所述第一分布式节点为所述分布式系统的主节点之后,还包括:所述第一分布式节点向所述客户端发送主节点更新消息,所述主节点更新消息中携带所述第一分布式节点的标识,使所述客户端将存储的主节点标识替换为所述第一分布式节点的标识。第一分布式节点可以向客户端发送主节点更新消息,使该客户端将存储的主节点标识替换为第一分布式节点的标识,则该客户端在下次需要访问该分布式系统中的数据时,可以基于存储的主节点标识,直接向主节点发送数据访问请求,提高了该分布式系统的工作效率。结合第一方面或第一方面的第一种可能的实现方式,在上述第一方面的第二种可能的实现方式中,所述确定所述分布式系统的主节点发生故障,并发起主节点选举请求之后,还包括:如果所述第一分布式节点选举失败,则向所述客户端发送故障提示信息,所述故障提示信息用于提示所述分布式系统的主节点发生故障。当该第一分布式节点选举失败不能被确定为主节点时,可以向客户端发送故障提示信息,使客户端可以确定该分布式系统主节点故障,不再向该主节点发送第一数据访问请求,提高了该分布式系统的工作效率。结合第一方面至第一方面的第二种可能的实现方式中的任一种可能的实现方式,在上述第一方面的第三种可能的实现方式中,所述基于存储的主节点标识,将所述第一数据访问请求发送给所述分布式系统的主节点之前,还包括:当所述分布式系统创建完成时,所述第一分布式节点选取所述分布式系统的主节点;当所述分布式系统的主节点选取成功时,存储所述分布式系统的主节点标识。需要说明的是,该分布式系统创建完成时没有主节点,且此时该分布式系统中的所有的分布式节点都没有存储该分布式系统的数据,因此第一分布式节点可以选取该分布式系统的主节点。第二方面,提供了一种分布式系统中主节点的选取方法,所述方法包括:客户端从分布式系统的多个分布式节点中,随机选择一个分布式节点;所述客户端将选择的分布式节点确定为第一分布式节点;所述客户端向所述第一分布式节点发送第一数据访问请求,使所述第一分布式节点在确定不为所述分布式系统的主节点且基于所述第一数据访问请求确定所述分布式系统的主节点发生故障时重新选取所述分布式系统的主节点,所述第一数据访问请求为通过所述分布式系统的主节点进行数据访问的请求。该客户端可以从该分布式系统中随机选取一个分布式节点,将该分布式节点确定为第一分布式节点,向该第一分布式节点发送第一数据请求来访问该分布式系统中的数据,使该第一分布式节点在确定主节点故障时重新选取该分布式系统的主节点,该分布式系统可以在主节点故障时迅速产生一个主节点,无需通过心跳消息来确定主节点发生故障,提高了该分布式系统的工作效率。结合第二方面,在上述第二方面的第一种可能的实现方式中,所述客户端向所述第一分布式节点发送第一数据访问请求之后,还包括:所述客户端接收所述第一分布式节点发送的主节点更新消息,所述主节点更新消息中携带所述第一分布式节点的标识;所述客户端将存储的主节点标识替换为所述第一分布式节点的标识。客户端可以接收主节点更新消息,并基于该主节点更新消息,更新该客户端存储的主节点标识,当该客户端在下次需要访问该分布式系统中的数据时,可以直接向主节点发送第一数据访问请求,提高了该分布式系统的工作效率。结合第二方面,在上述第二方面的第二种可能的实现方式中,所述客户端向所述第一分布式节点发送第一数据访问请求之后,还包括:当所述客户端接收到所述第一分布式节点发送的故障提示信息时,确定所述分布式系统的主节点发生故障;所述客户端将存储的主节点标识删除,并返回执行所述从分布式系统的多个分布式节点中,随机选择一个分布式节点的步骤。当客户端收到故障提示信息时,说明该第一分布式节点无法向主本文档来自技高网
...
分布式系统中主节点的选取方法和装置

【技术保护点】
一种分布式系统中主节点的选取方法,其特征在于,所述方法包括:第一分布式节点接收客户端发送的第一数据访问请求,所述第一数据访问请求为通过分布式系统的主节点进行数据访问的请求,所述第一分布式节点为所述分布式系统中任一分布式节点;当所述第一分布式节点不为所述分布式系统的主节点时,基于存储的主节点标识,将所述第一数据访问请求发送给所述分布式系统的主节点;当确定所述第一数据访问请求无法发送至所述分布式系统的主节点时,确定所述分布式系统的主节点发生故障,并发起主节点选举请求;如果所述第一分布式节点选举成功,则确定所述第一分布式节点为所述分布式系统的主节点。

【技术特征摘要】
1.一种分布式系统中主节点的选取方法,其特征在于,所述方法包括:第一分布式节点接收客户端发送的第一数据访问请求,所述第一数据访问请求为通过分布式系统的主节点进行数据访问的请求,所述第一分布式节点为所述分布式系统中任一分布式节点;当所述第一分布式节点不为所述分布式系统的主节点时,基于存储的主节点标识,将所述第一数据访问请求发送给所述分布式系统的主节点;当确定所述第一数据访问请求无法发送至所述分布式系统的主节点时,确定所述分布式系统的主节点发生故障,并发起主节点选举请求;如果所述第一分布式节点选举成功,则确定所述第一分布式节点为所述分布式系统的主节点。2.如权利要求1所述的方法,其特征在于,所述确定所述第一分布式节点为所述分布式系统的主节点之后,还包括:所述第一分布式节点向所述客户端发送主节点更新消息,所述主节点更新消息中携带所述第一分布式节点的标识,使所述客户端将存储的主节点标识替换为所述第一分布式节点的标识。3.如权利要求1或2所述的方法,其特征在于,所述确定所述分布式系统的主节点发生故障,并发起主节点选举请求之后,还包括:如果所述第一分布式节点选举失败,则向所述客户端发送故障提示信息,所述故障提示信息用于提示所述分布式系统的主节点发生故障。4.如权利要求1-3任一权利要求所述的方法,其特征在于,所述基于存储的主节点标识,将所述第一数据访问请求发送给所述分布式系统的主节点之前,还包括:当所述分布式系统创建完成时,所述第一分布式节点选取所述分布式系统的主节点;当所述分布式系统的主节点选取成功时,存储所述分布式系统的主节点标识。5.一种分布式系统中主节点的选取方法,其特征在于,所述方法包括:客户端从分布式系统的多个分布式节点中,随机选择一个分布式节点;所述客户端将选择的分布式节点确定为第一分布式节点;所述客户端向所述第一分布式节点发送第一数据访问请求,使所述第一分布式节点在确定不为所述分布式系统的主节点且基于所述第一数据访问请求确定所述分布式系统的主节点发生故障时重新选取所述分布式系统的主节点,所述第一数据访问请求为通过所述分布式系统的主节点进行数据访问的请求。6.如权利要求5所述的方法,其特征在于,所述客户端向所述第一分布式节点发送第一数据访问请求之后,还包括:所述客户端接收所述第一分布式节点发送的主节点更新消息,所述主节点更新消息中携带所述第一分布式节点的标识;所述客户端将存储的主节点标识替换为所述第一分布式节点的标识。7.如权利要求5所述的方法,其特征在于,所述客户端向所述第一分布式节点发送第一数据访问请求之后,还包括:当所述客户端接收到所述第一分布式节点发送的故障提示信息时,确定所述分布式系统的主节点发生故障;所述客户端将存储的主节点标识删除,并返回执行所述从分布式系统的多个分布式节点中,随机选择一个分布式节点的步骤。8.如权利要求5-7任一权利要求所述的方法,其特征在于,所述客户端从分布式系统的多个分布式节点中,随机选择一个分布式节点之前,还包括:所述客户端基于存储的主节点标识,向所述分布式系统的主节点发送所述第一数据访问请求,使所述分布式系统的主节点返回数据访问响应;当所述客户端未接收到所述分布式系统的主节点返回的数据访问响应时,执行所述从分布式系统的多个分布式节点中,随机选择一个分布式节点的步骤。9.如权利要求5-8任一权利要求所述的方法,其特征在于,所述客户端从分布式系统的多个分布式节点中,随机选择一个分布式节点之前,还包括:当所述分布式系统创建完成时,所述客户端从所述分布式系统的多个分布式节点中,随机选择一个分布式节点;所述客户端将选择的分布式节点确定为第二分布式节点;所述客户端向所述第二分布式节点发送第二数据访问请求,使所述第二分布式节点发起主节点选举请求,所述第二数据访问请求为通过所述分布式系统的...

【专利技术属性】
技术研发人员:关键
申请(专利权)人:华为技术服务有限公司
类型:发明
国别省市:河北,13

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

1