管理锁的方法及装置、确定锁管理服务器的方法及装置的制造方法

文档序号:9451561阅读:197来源:国知局
管理锁的方法及装置、确定锁管理服务器的方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,特别涉及一种管理锁的方法及装置、确定锁管理服务器的方法及装置、锁管理服务器及客户端。
【背景技术】
[0002]分布式系统是一组主机通过网络相互连接与通信后形成的系统。在分布式系统中,各个主机之间共享分布式系统的资源,为了防止两个或多个主机同时访问一个资源造成冲突的情况发生,每个资源需要对应一个锁,主机访问一个资源,需要首先申请该资源对应的锁,申请成功后,再访问该资源,访问完毕后,释放该资源对应的锁,以便其他主机能够申请该资源对应的锁。
[0003]目前管理分布式系统的资源对应的锁的实现方式:
[0004]分布式系统中的所有主机均存储有每个资源对应的锁,所有主机中有一个主机为主节点,对外提供服务,其他主机作为备节点,备节点接收到的请求均转发到主节点上。在主节点上执行的所有操作必须同步到备节点上。由于仅有主节点对外提供服务,所以主节点能够支持的锁数量就是整个分布式系统能够支持的锁数量,锁容量有限,并且由于在主节点上执行的每次操作都需要同步到整个分布式系统中的各个备节点上,涉及到多次通信以及协商,所以性能较低,同时可靠性难以得到保障。
[0005]综上,目前管理系统资源对应的锁的方式无法满足高并发、低时延和可靠性需求。

【发明内容】

[0006]本发明实施例提供一种管理锁的方法及装置、确定锁管理服务器的方法及装置、锁管理服务器及客户端,锁无需持久化,同时满足处理低时延,和服务高并发,锁的高可靠性,无需保存锁多个副本从而避免锁迀移带来的额外开销。
[0007]本发明实施例第一方面提供了一种管理锁的方法,所述方法应用于锁管理服务器集群,所述锁管理服务器集群包含多个锁管理服务器,所述方法包括:
[0008]第一锁管理服务器接收第一客户端发送的锁申请请求,所述锁申请请求包含资源标识,所述第一锁管理服务器是所述第一客户端根据所述资源标识按照预定函数关系,从所述多个锁管理服务器中确定出的;
[0009]若所述第一锁管理服务器中所述资源标识对应的锁的状态为空闲,则所述第一锁管理服务器将所述锁分配给所述第一客户端;
[0010]若所述第一锁管理服务器没有所述资源标识对应的锁,则所述第一锁管理服务器根据所述资源标识生成锁,并分配给所述第一客户端。
[0011]结合第一方面,在第一方面的第一种可能的实现方式中,所述第一锁管理服务器没有所述锁,则所述第一锁管理服务器根据所述资源标识生成锁,并分配给所述第一客户端,包括:
[0012]所述第一锁管理服务器根据所述资源标识确定由所述第一锁管理服务器生成所述锁,则所述第一锁管理服务器根据所述资源标识生成锁,并分配给所述第一客户端。
[0013]结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,还包括:
[0014]若所述第一锁管理服务器中所述锁的状态为占用、且占用所述锁的第二客户端故障,则所述第一锁管理服务器将所述锁分配给所述第一客户端。
[0015]结合第一方面至第一方面的第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述预定函数关系用于将所述资源标识映射为所述多个锁管理服务器中一个锁管理服务器的标识。
[0016]本发明实施例第二方面提供了一种管理锁的方法,所述方法应用于锁管理服务器集群,所述锁管理服务器集群包含多个锁管理服务器,所述方法包括:
[0017]第一锁管理服务器接收第一客户端发送的锁释放请求,所述锁释放请求包含资源标识,所述第一锁管理服务器是所述第一客户端根据所述资源标识按照预定函数关系,从所述多个锁管理服务器中确定出的;
[0018]若所述第一锁管理服务器中所述锁被所述第一客户端占用,则所述第一锁管理服务器将所述锁的状态设置为空闲。
[0019]结合第二方面,在第二方面的第一种可能的实现方式中,还包括:
[0020]若所述第一锁管理服务器没有所述锁,则所述第一锁管理服务器根据所述资源标识生成锁,并设置生成的锁的状态为占用。
[0021]结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,还包括:
[0022]若所述第一锁管理服务器中所述锁的状态为占用,且占用所述锁的第二客户端发生故障,则所述第一锁管理服务器将所述锁的状态设置为空闲。
[0023]结合第二方面至第二方面的第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述预定函数关系用于将所述资源标识映射为所述多个锁管理服务器中一个锁管理服务器的标识。
[0024]本发明实施例第三方面提供了一种确定锁管理服务器的方法,所述方法包括:
[0025]客户端根据第一资源标识,按照预定函数关系从锁管理服务器集群包含的多个锁管理服务器中确定出第一锁管理服务器;
[0026]若所述第一锁管理服务器工作正常,则所述客户端向所述第一锁管理服务器发送第一锁操作请求;所述第一锁操作请求为第一锁申请请求或第一锁释放请求;所述第一锁操作请求携带所述第一资源标识。
[0027]结合第三方面,在第三方面的第一种可能的实现方式中,还包括:
[0028]所述客户端根据第二资源标识,按照所述预定函数关系从所述多个锁管理服务器中确定出第二锁管理服务器;
[0029]若所述第二锁管理服务器发生故障,则所述客户端按照所述预定函数关系从剩余锁管理服务器中确定出第三锁管理服务器,所述剩余锁管理服务器为所述多个服务器中除所述第二锁管理服务器外的锁管理服务器;
[0030]若所述第三锁管理服务器工作正常,则所述客户端向所述第三锁管理服务器发送第二锁操作请求,所述第二锁操作请求为第二锁申请请求或第二锁释放请求,所述第二锁操作请求中携带所述第二资源标识。
[0031]本发明实施例第四方面提供了一种管理锁的装置,包括:
[0032]接收单元,用于接收第一客户端发送的锁申请请求,所述锁申请请求包含资源标识,所述第一锁管理服务器是所述第一客户端根据所述资源标识按照预定函数关系,从锁管理服务器集群包含的多个锁管理服务器中确定出的;
[0033]分配单元,用于若所述第一锁管理服务器中所述资源标识对应的锁的状态为空闲,则所述第一锁管理服务器将所述锁分配给所述第一客户端;
[0034]生成单元,用于若所述第一锁管理服务器没有所述资源标识对应的锁,则所述第一锁管理服务器根据所述资源标识生成锁,并分配给所述第一客户端。
[0035]结合第四方面,在第四方面的第一种可能的实现方式中,所述生成单元用于:
[0036]根据所述资源标识确定由所述第一锁管理服务器生成所述锁,则所述第一锁管理服务器根据所述资源标识生成锁,并分配给所述第一客户端。
[0037]结合第四方面或者第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述分配单元还用于:
[0038]若所述第一锁管理服务器中所述锁的状态为占用、且占用所述锁的第二客户端故障,则所述第一锁管理服务器将所述锁分配给所述第一客户端。
[0039]结合第四方面至第四方面的第二种可能的实现方式中的任一种可能的实现方式,在第四方面的第三种可能的实现方式中,所述预定函数关系用于将所述资源标识映射为所述多个锁管理服务器中一个锁管理服务器的标识。
[0040]本发明实施例第五方面提供了一种管理锁的装置,包括:
[0041]接收单元,用于接收第一客户端发送的锁释放请求,所述锁释放请求包含资源标识,所述第一锁管理服务器是所述第一客户端根据所述资源标识按照预定函数关系,从所述多个锁管理服务器中确定出的;
[0042]释放单元,用于若所述第一锁管理服务器中所述锁被所述第一客户端占用,则所述第一锁管理服务器将所述锁的状态设置为空闲。
[0043]结合第五方面,在第五方面的第一种可能的实现方式中,所述装置还包括:
[0044]生成单元,用于若所述第一锁管理服务器没有所述锁,则所述第一锁管理服务器根据所述资源标识生成锁,并设置生成的锁的状态为占用。
[0045]结合第五方面或者第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述释放单元还用于:
[0046]若所述第一锁管理服务器中所述锁的状态为占用,且占用所述锁的第二客户端发生故障,则所述第一锁管理服务器将所述锁的状态设置为空闲。
[0047]结合第五方面至第五方面的第二种可能的实现方式中的任一种可能的实现方式,在第五方面的第三种可能的实现方式中,所述预定函数关系用于将所述资源标识映射为所述多个锁管理服务器中一个锁管理服务器的标识。
[0048]本发明实施例第六方面提供了一种确定锁管理服务器的装置,包括:
[0049]确定单元,用于根据第一资源标识,按照第一函数关系从锁管理服务器集群包含的多个锁管理服务器中确定出第一锁管理服务器;
[0050]发送单元,用于若所述第一锁管理服务器工作正常,则所述客户端向所述第一锁管理服务器发送第一锁操作请求;所述第一锁操作请求为第一锁申请请求或第一锁释放请求;所述第一锁操作请求携带所述第一资源标识。
[0051]结合第六方面,在第六方面的第一种可能的实现方式中,所述确定单元还用于:
[0052]根据第二资源标识,按照所述第一函数关系从所述多个锁管理服务器中确定出第二锁管理服务器;若所述第二锁管理服务器发生故障,则按照所述第一函数关系从剩余锁管理服务器中确定出第三锁管理服务器,所述剩余锁管理服务器为所述多个服务器中除所述第二锁管理服务器外的锁管理服务器;
[0053]所述发送单元还用于:若所述第三锁管理服务器工作正常,则所述客户端向所述第三锁管理服务器发送第二锁操作请求,所述第二锁操作请求为第二锁申请请求或第二锁释放请求,所述第二锁操作请求中携带所述第二资源标识。
[0054]本发明实施例第七方面提供了一种锁管理服务器,所述锁管理服务器为锁管理服务器集群包含的多个锁管理服务器中的一个,所述锁管理服务器包括:处理器,接收器和通信总线;其中,所述处理器和所述接收器通过所述通信总线完成相互间的通信;
[0055]所述接收器用于:
[0056]接收第一客户端发送的锁申请请求,所述锁申请请求包含资源标识,所述锁管理服务器是所述第一客户端根据所述资源标识按照预定函数关系,从所述多个锁管理服务器中确定出的;
[0057]所述处理器用于:
[0058]若所述锁管理服务器中所述资源标识对应的锁的状态为空闲,则将所述锁分配给所述第一客户端;若所述锁管理服务器没有所述资源标识对应的锁,则所述锁管理服务器根据所述资源标识生成锁,并分配给所述第一客户端。
[0059]结合第七方面,在第七方面的第一种可能的实现方式中,所述处理器用于:
[0060]根据所述资源标识确定由所述锁管理服务器生成所述锁,则根据所述资源标识生成锁,并分配给所述第一客户端。
[0061]结合第七方面或者第七方面的第一种可能的实现方式,在第七方面的第二种可能的实现方式中,所述处理器还用于:
[0062]若所述锁管理服务器中所述锁的状态为占用、且占用所述锁的第二客户端故障,则将所述锁分配给所述第一客户端。
[0063]结合第七方面至第七方面的第二种可能的实现方式中的任一种可能的实现方式,在第七方面的第三种可能的实现方式中,所述预定函数关系用于将所述资源标识映射为所述多个锁管理服务器中一个锁管理服务器的标识。
[0064]本发明实施例第八方面提供了一种锁管理服务器,所述锁管理服务器为锁管理服务器集群包含的多个锁管理服务器中的一个,所述锁管理服务器包括:处理器,接收器和通信总线;其中,所述处理器和所述接收器通过所述通信总线完成相互间的通信;
[0065]所述接收器用于:
[0066]接收第一客户端发送的锁释放请求,所述锁释放请求包含资源标识,所述锁管理服务器是所述第一客户端根据所述资源标识按照预定函数关系,从所述多个锁管理服务器中确定出的;
[0067]所述处理器用于:
[0068]若所述锁管理服务器中所述锁被所述第一客户端占用,则将所述锁的状态设置为空闲。
[0069]结合第八方面,在第八方面的第一种可
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1