一种分布式锁调度方法及装置制造方法及图纸

技术编号:20181974 阅读:32 留言:0更新日期:2019-01-23 02:08
本申请实施例公开了一种分布式锁调度方法及装置。所述方法包括:当服务进程启动时,创建与所述服务进程对应的分布式锁和会话;若所述服务进程发生故障,并与所述服务进程的调度进程断开连接,且,所述调度进程重新启动,并生成新的调度进程,则所述新的调度进程获取所述服务进程的所述标识信息;所述新的调度进程根据所述标识信息获取与所述标识信息相关联的至少一个分布式锁,并根据所述至少一个分布式锁获取与所述分布式锁相关联的至少一个历史会话,所述至少一个历史会话中包括所述会话。所述方法及装置实施例可以保证客户端的正常工作状态,以及保持其他业务客户端对分组数据访问服务的连续性。

A Distributed Lock Scheduling Method and Device

The embodiment of this application discloses a distributed lock scheduling method and device. The method includes: creating a distributed lock and session corresponding to the service process when the service process is started; if the service process fails and disconnects from the scheduling process of the service process, and the scheduling process restarts and generates a new scheduling process, the new scheduling process obtains the identification information of the service process; The new scheduling process obtains at least one distributed lock associated with the identification information according to the identification information, and obtains at least one historical session associated with the distributed lock according to the at least one distributed lock, which includes the session. The method and the device embodiment can ensure the normal working state of the client and maintain the continuity of the packet data access service of other business clients.

【技术实现步骤摘要】
一种分布式锁调度方法及装置
本申请涉及互联网及云计算
,特别涉及一种分布式锁调度方法及装置。
技术介绍
在分布式一致性系统中,为了保证分布式数据的一致性,通常可以依赖分布式锁服务技术以解决分布在不同计算节点上的客户端进程访问共享资源的问题。分布式锁服务技术已广泛应用于大规模云计算场景中,典型的分布式锁服务技术是基于分布式一致性系统提供的临时文件(Ephemeralfile)操作接口实现的。具体地,分布式锁“抢锁”的实现可以基于创建临时文件操作接口,分布式锁释放锁的实现则可以基于删除所述临时文件操作接口。临时文件的归属性确保分布式锁的互斥性。分布式一致性服务器一般会在第一客户端进程创建临时文件时,记录所述第一客户端进程所对应的会话信息。当有第二客户端进程(第二客户端进程可以为与第一客户端进程步相同的任何客户端进程)尝试创建临时文件时,分布式一致性服务器可以判断所述临时文件归属的会话与所述第二客户端进程对应的会话是否匹配,当判断结果为不匹配时,可以确定所述第二客户端“争抢”分布式锁失败。分布式一致性系统中的临时文件的生命期可以确保分布式锁的可用性。临时文件生命期可以为所述临时文件归属客户端进程所对应会话的时间段。具体地,所述临时文件生命期可以通过客户端进程与分布式一致性服务器之间的定期心跳更新。若客户端进程在客户端认定的会话有效时间内没有收到任何来自分布式一致性服务器的心跳包回复,则可以确定客户端进程所对应的会话超时,客户端进程丢失分布式锁。若分布式一致性服务器在服务器端认定的会话有效时间内没有接收到任何来自客户端进程的心跳包,则可以确定客户端进程所对应的会话超时,所述分布式一致性服务器可以删除分布式锁文件,释放该分布式锁的所有权。在大规模云计算环境中,很多服务存在如下应用场景:例如在基于多线程处理技术的Master-Worker并行模式中,Master进程可以调度不同的Worker进程加载不同的分区(Partition)数据以提供并发的数据访问,进而提升分布式一致性系统的整体服务能力。为了避免同一个Partition被多个Worker进程同时加载而导致Partition中的数据被写坏的情况发生,每个被调度的Worker进程需要争抢对应Partition的分布式锁。Worker进程在获取Partition的分布式锁的所有权之后,才可以提供对所述Partition数据的具体访问服务,另外,Worker进程还可以在向Master进程发送定期心跳的同时发送服务状态信息。实际的分布式并发环境往往复杂难控,如果Worker进程所在机器的写系统盘出现故障,很可能会出现如下情形:Worker进程与分布式一致性服务器之间心跳正常,即在会话超时前Worker进程总可以收到心跳包回复,因此Worker进程一直占据着Partition所对应的分布式锁,此时所述Worker进程发生“假死”事件。但是,所述Worker进程无法向Master进程发送服务状态信息,所述Worker进程加载的Partition数据的访问服务也因此而中断。因此,现有技术中亟需一种能够在保证分布式锁正确性的前提下,支持Master进程重新调度分布式锁所有权的灵活机制。
技术实现思路
本申请实施例的目的在于提供一种分布式锁调度方法及装置,可以保证客户端的正常工作状态,以及保持其他业务客户端对分组数据访问服务的连续性。本申请实施例提供的一种分布式锁调度方法及装置具体是这样实现的:一种分布式锁调度方法,所述方法包括:当服务进程启动时,创建与所述服务进程对应的分布式锁和会话,所述会话与所述分布式锁相关联,所述分布式锁与所述服务进程的标识信息相关联;若所述服务进程发生故障,并与所述服务进程的调度进程断开连接,且,所述调度进程重新启动,并生成新的调度进程,则所述新的调度进程获取所述服务进程的所述标识信息;所述新的调度进程根据所述标识信息获取与所述标识信息相关联的至少一个分布式锁,并根据所述至少一个分布式锁获取与所述分布式锁相关联的至少一个历史会话,所述至少一个历史会话中包括所述会话。一种分布式锁调度装置,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:当服务进程启动时,创建与所述服务进程对应的分布式锁和会话,所述会话与所述分布式锁相关联,所述分布式锁与所述服务进程的标识信息相关联;若所述服务进程发生故障,并与所述服务进程的调度进程断开连接,且,所述调度进程重新启动,并生成新的调度进程,则所述新的调度进程获取所述服务进程的所述标识信息;所述新的调度进程根据所述标识信息获取与所述标识信息相关联的至少一个分布式锁,并根据所述至少一个分布式锁获取与所述分布式锁相关联的至少一个历史会话,所述至少一个历史会话中包括所述会话。一种分布式锁调度装置,所述装置包括:创建单元,用于当服务进程启动时,创建与所述服务进程对应的分布式锁和会话,所述会话与所述分布式锁相关联,所述分布式锁与所述服务进程的标识信息相关联;标识信息获取单元,用于若所述服务进程发生故障,并与所述服务进程的调度进程断开连接,且,所述调度进程重新启动,并生成新的调度进程,则所述新的调度进程获取所述服务进程的所述标识信息;历史会话获取单元,用于所述新的调度进程根据所述标识信息获取与所述标识信息相关联的至少一个分布式锁,并根据所述至少一个分布式锁获取与所述分布式锁相关联的至少一个历史会话,所述至少一个历史会话中包括所述会话。一种数据处理方法,包括:确认服务进程发生故障,其中,所述服务进程对应于分布式锁,所述分布式锁与所述服务进程的标识信息相关联;获取与所述标识信息相关联的至少一个分布式锁;释放所述至少一个分布式锁。本申请提供的分布式锁调度方法及装置,可以在服务进程启动时,创建与所述服务进程对应的分布式锁,且所述分布式锁分别与所述服务进程的会话和标识信息相关联。这样,若在所述服务进程发生故障(如假死事件)之后,调度进程重新启动,则重启之后的新调度进程可以根据所述服务进程的标识信息从分布式服务器中获取所述服务进程的分布式锁,并根据所述分布式锁获取至少一个历史会话。后续地,将所述至少一个历史会话添加至布式一致性服务器的黑名单之后,可以释放所述子服务器分组数据所对应的分布式锁的所有权,让其他服务进程获取所述分组数据所对应的分布式锁的所有权,可以保证客户端的正常工作状态,以及保持其他业务客户端对分组数据访问服务的连续性。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请提供的客户端与分布式一致性服务器端之间调度分布式锁的示意图;图2是本申请提供的分布式锁调度方法的一种实施例的方法流程图;图3是本申请提供的分布式锁调度装置的一种实施例的模块结构示意图图4是本申请提供的分布式锁调度装置的另一种实施例的模块结构示意图。具体实施方式为了使本
的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,本文档来自技高网
...

【技术保护点】
1.一种分布式锁调度方法,其特征在于,所述方法包括:当服务进程启动时,创建与所述服务进程对应的分布式锁和会话,所述会话与所述分布式锁相关联,所述分布式锁与所述服务进程的标识信息相关联;若所述服务进程发生故障,并与所述服务进程的调度进程断开连接,且,所述调度进程重新启动,并生成新的调度进程,则所述新的调度进程获取所述服务进程的所述标识信息;所述新的调度进程根据所述标识信息获取与所述标识信息相关联的至少一个分布式锁,并根据所述至少一个分布式锁获取与所述分布式锁相关联的至少一个历史会话,所述至少一个历史会话中包括所述会话。

【技术特征摘要】
1.一种分布式锁调度方法,其特征在于,所述方法包括:当服务进程启动时,创建与所述服务进程对应的分布式锁和会话,所述会话与所述分布式锁相关联,所述分布式锁与所述服务进程的标识信息相关联;若所述服务进程发生故障,并与所述服务进程的调度进程断开连接,且,所述调度进程重新启动,并生成新的调度进程,则所述新的调度进程获取所述服务进程的所述标识信息;所述新的调度进程根据所述标识信息获取与所述标识信息相关联的至少一个分布式锁,并根据所述至少一个分布式锁获取与所述分布式锁相关联的至少一个历史会话,所述至少一个历史会话中包括所述会话。2.根据权利要求1所述的方法,其特征在于,在根据所述分布式锁获取与所述分布式锁相关联的至少一个历史会话之后,所述方法还包括:根据所述至少一个历史会话,释放所述服务进程对所述至少一个分布式锁的所有权。3.根据权利要求1所述的方法,其特征在于,所述标识信息包括所述服务进程所在机器的标识信息,所述标识信息至少包括下述中的一种:主机名称、MAC地址、硬盘序列号、CPU序列号、BIOS编号。4.根据权利要求1或3所述的方法,其特征在于,所述分布式锁与所述服务进程的标识信息相关联包括:所述分布式锁的访问路径信息被设置为包含所述服务进程的标识信息。5.根据权利要求4所述的方法,其特征在于,所述访问路径信息中还包括通用唯一识别码。6.根据权利要求1所述的方法,其特征在于,在所述服务进程发生故障,并与所述服务进程的调度进程断开连接之后,所述方法还包括:当所述服务进程的会话超时时,释放所述服务进程对所述分布式锁的所有权。7.一种分布式锁调度装置,其特征在于,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:当服务进程启动时,创建与所述服务进程对应的分布式锁和会话,所述会话与所述分布式锁相关联,所述分布式锁与所述服务进程的标识信息相关联;若所述服务进程发生故障,并与所述服务进程的调度进程断开连接,且,所述调度进程重新启动,并生成新的调度进程,则所述新的调度进程获取所述服务进程的所述标识信息;所述新的调度进程根据所述标识信息获取与所述标识信息相关联的至少一个分布式锁,并根据...

【专利技术属性】
技术研发人员:陈新进安凯歌赵立芳卢毅军
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1