System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 分布式ID生成方法、装置、存储介质及电子设备制造方法及图纸_技高网

分布式ID生成方法、装置、存储介质及电子设备制造方法及图纸

技术编号:40266246 阅读:8 留言:0更新日期:2024-02-02 22:54
本发明专利技术公开了一种分布式ID生成方法、装置、存储介质及电子设备。涉及分布式系统领域,该方法包括:响应于目标应用程序的分布式唯一标识符ID生成请求,在本地缓存中不存在可用分布式ID的情况下,从多级远程字典服务Redis缓存中最高层级的Redis缓存开始,依次查询多级Redis缓存中是否存在可用分布式ID;在多级Redis缓存中,任意一级Redis缓存中存在可用分布式ID的情况下,将任意一级Redis缓存中的一个可用分布式ID通过最高层级的Redis缓存中的分布式ID微服务模块返回至目标应用程序。本发明专利技术解决了相关技术中基于单级Redis缓存的分布式ID生成方法,存在的分布式ID生成效率低、可扩展性差的技术问题。

【技术实现步骤摘要】

本专利技术涉及分布式系统领域,具体而言,涉及一种分布式id生成方法、装置、存储介质及电子设备。


技术介绍

1、在分布式系统中,为了保证各分布式节点生成的分布式id唯一性且不冲突,常常采用分布式id生成策略。传统的分布式id生成方法进行id生成时,通常仅设置一层redis缓存,redis缓存压力大,分布式id生成存在延迟,进而容易导致分布式id生成效率低且缓存性能差等问题。

2、针对上述的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本专利技术实施例提供了一种分布式id生成方法、装置、存储介质及电子设备,以至少解决相关技术中基于单级redis缓存的分布式id生成方法,存在的分布式id生成效率低、可扩展性差的技术问题。

2、根据本专利技术实施例的一个方面,提供了一种分布式id生成方法,包括:响应于目标应用程序的分布式唯一标识符id生成请求,查询所述目标应用程序所在设备的本地缓存中是否存在可用分布式id;在所述本地缓存中不存在可用分布式id的情况下,从多级远程字典服务redis缓存中最高层级的redis缓存开始,依次查询所述多级redis缓存中是否存在可用分布式id,其中,所述多级redis缓存分别用于存储和管理已生成的分布式id;在所述多级redis缓存中,任意一级redis缓存中存在可用分布式id的情况下,将所述任意一级redis缓存中的一个可用分布式id作为第一分布式id;通过所述最高层级的redis缓存中的分布式id微服务模块,将所述第一分布式id返回至所述目标应用程序,其中,所述分布式id微服务模块用于进行id分配。

3、可选的,所述方法还包括:在所述多级redis缓存中均不存在可用分布式id的情况下,查询数据库中是否存在可用分布式id;在所述数据库中存在可用分布式id的情况下,将所述数据库中的一个可用分布式id作为第二分布式id;从所述一级redis缓存开始,将所述第二分布式id从所述数据库逐层传输至所述最高层级的redis缓存;通过所述最高层级的redis缓存中的所述分布式id微服务模块,将所述第二分布式id返回至所述目标应用程序。

4、可选的,所述方法还包括:在所述数据库中不存在可用分布式id的情况下,根据预设的id生成算法,生成多个新增分布式id;按照预设的id分配规则,将所述多个新增分布式id存储至所述数据库和所述多级redis缓存中的预定位置,其中,所述id分配规则至少用于指示所述数据库和所述多级redis缓存分别对应的id分配比例。

5、可选的,所述按照预设的id分配规则,将所述多个新增分布式id存储至所述数据库和所述多级redis缓存中的预定位置,包括:将所述多个新增分布式id发送至所述数据库;按照所述id分配规则,将所述数据库分配的新增分布式id存储至所述数据库中的预定位置;按照所述id分配规则,从所述一级redis缓存开始,将其他新增分布式id从所述数据库逐层分配至所述多级redis缓存中的预定位置,其中,所述其他新增分布式id为所述多个新增分布式id中,除所述数据库分配到的新增分布式id之外的其他分布式id。

6、可选的,所述方法还包括:按照第一预设时间间隔定时查询所述数据库中可用分布式id的数量;在查询到所述数据库中可用分布式id的数量小于第一预设数量的情况下,将第一数量的新增分布式id存储至所述数据库中的预定位置。

7、可选的,所述方法还包括:对于所述多级redis缓存中的每一级redis缓存,按照对应的预设时间间隔定时查询所述每一级redis缓存中可用分布式id的数量;在查询到所述每一级redis缓存中可用分布式id的数量小于第二预设数量的情况下,将第二数量的新增分布式id存储至所述每一级redis缓存中的预定位置。

8、可选的,在所述任意一级redis缓存中存在可用分布式id,并且所述任意一级redis缓存不为所述最高层级的redis缓存的情况下,所述通过所述最高层级的redis缓存中的分布式id微服务模块,将所述第一分布式id返回至所述目标应用程序,包括:将所述第一分布式id由所述任意一级redis缓存逐层发送至所述最高层级的redis缓存;通过所述最高层级的redis缓存中的所述分布式id微服务模块,将所述第一分布式id返回至所述目标应用程序。

9、根据本专利技术实施例的另一方面,还提供了一种分布式id生成装置,包括:响应模块,用于响应于目标应用程序的分布式唯一标识符id生成请求,查询所述目标应用程序所在设备的本地缓存中是否存在可用分布式id;第一查询模块,用于在所述本地缓存中不存在可用分布式id的情况下,从多级远程字典服务redis缓存中最高层级的redis缓存开始,依次查询所述多级redis缓存中是否存在可用分布式id,其中,所述多级redis缓存分别用于存储和管理已生成的分布式id;第二查询模块,用于在所述多级redis缓存中,任意一级redis缓存中存在可用分布式id的情况下,将所述任意一级redis缓存中的一个可用分布式id作为第一分布式id;分布式id返回模块,用于通过所述最高层级的redis缓存中的分布式id微服务模块,将所述第一分布式id返回至所述目标应用程序,其中,所述分布式id微服务模块用于进行id分配。

10、根据本专利技术实施例的另一方面,还提供了一种非易失性存储介质,所述非易失性存储介质存储有多条指令,所述指令适于由处理器加载并执行任意一项所述的分布式id生成方法。

11、根据本专利技术实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现任意一项所述的分布式id生成方法。

12、在本专利技术实施例中,通过响应于目标应用程序的分布式唯一标识符id生成请求,查询所述目标应用程序所在设备的本地缓存中是否存在可用分布式id;在所述本地缓存中不存在可用分布式id的情况下,从多级远程字典服务redis缓存中最高层级的redis缓存开始,依次查询所述多级redis缓存中是否存在可用分布式id,其中,所述多级redis缓存分别用于存储和管理已生成的分布式id;在所述多级redis缓存中,任意一级redis缓存中存在可用分布式id的情况下,将所述任意一级redis缓存中的一个可用分布式id作为第一分布式id;通过所述最高层级的redis缓存中的分布式id微服务模块,将所述第一分布式id返回至所述目标应用程序,其中,所述分布式id微服务模块用于进行id分配,达到了通过多级redis缓存的方式进行可用分布式id的生成与返回的目的,从而实现了提升分布式id生成效率和灵活性的技术效果,进而解决了相关技术中基于单级redis缓存的分布式id生成方法,存在的分布式id生成效率低、可扩展性差的技术问题。

本文档来自技高网...

【技术保护点】

1.一种分布式ID生成方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述按照预设的ID分配规则,将所述多个新增分布式ID存储至所述数据库和所述多级Redis缓存中的预定位置,包括:

5.根据权利要求2所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述方法还包括:

7.根据权利要求1至5中任意一项所述的方法,其特征在于,在所述任意一级Redis缓存中存在可用分布式ID,并且所述任意一级Redis缓存不为所述最高层级的Redis缓存的情况下,所述通过所述最高层级的Redis缓存中的分布式ID微服务模块,将所述第一分布式ID返回至所述目标应用程序,包括:

8.一种分布式ID生成装置,其特征在于,包括:

9.一种非易失性存储介质,其特征在于,所述非易失性存储介质存储有多条指令,所述指令适于由处理器加载并执行权利要求1至7中任意一项所述的分布式ID生成方法。

10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的分布式ID生成方法。

...

【技术特征摘要】

1.一种分布式id生成方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述按照预设的id分配规则,将所述多个新增分布式id存储至所述数据库和所述多级redis缓存中的预定位置,包括:

5.根据权利要求2所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述方法还包括:

7.根据权利要求1至5中任意一项所述的方法,其特征在于,在所述任意一级redis缓存中存在可用分布式id,并且所述任...

【专利技术属性】
技术研发人员:樊明磊
申请(专利权)人:天翼电子商务有限公司
类型:发明
国别省市:

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

1