System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别是涉及一种标识生成方法、装置、计算机设备、存储介质和计算机程序产品。
技术介绍
1、现在基于计算机技术的业务系统中,为了分辨和管理,对每一项业务均生成一个与之对应的具有唯一性的id,正如人们的身份证一样。
2、目前针对分布式数据库的全局id的主流生成方法有uuid/guid:它是32位26个字母和数字组成的字符串。这种方案大部分程序语言和数据库均提供直接支持。如果用这种方式,全局唯一id不需要额外任何开发工作量。但这种方式为数据库的id,其索引效率非常低效,因为它的生成32位字符串是随机的。并且这个方案无法独立运作,需要依赖数据库实现运行,因此,直接导致其低性能、高延迟和过长位描述的缺陷。
3、目前,在需要部署某容器化服务时,针对服务生成全局唯一id的效率较低。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够在需要部署某容器化服务时,针对该服务高效生成全局唯一id的标识生成方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本申请提供了一种标识生成方法。包括:
3、在目标容器进程启动的情况下,获取目标容器的容器标识;
4、获取哈希表,将容器标识存储到哈希表中,获取容器标识在哈希表中的地址标识,作为目标容器的工作标识;
5、根据工作标识,构建雪花算法;
6、根据雪花算法,得到目标容器的唯一标识。
7、在其中一个实施例中,将容器标
8、采用哈希算法计算容器标识的哈希值;
9、根据哈希值,将容器标识存储到哈希表中;哈希表长度为2的10次方,地址标记指定为0至1023。
10、在其中一个实施例中,根据哈希值,将容器标识存储到哈希表中,包括:
11、采用散列算法对哈希值进行处理,得到地址位;
12、根据地址位,在哈希表中确定容器标识对应的目标存储位置;
13、将容器标识存储到目标存储位置。
14、在其中一个实施例中,获取容器标识在哈希表中的地址标识,作为目标容器的工作标识,包括:
15、在哈希表中,针对每一个存储位置,添加唯一的地址标识;
16、获取目标存储位置对应的地址标识,作为述目标容器的工作标识。
17、在其中一个实施例中,方法还包括:
18、在目标容器进程销毁的情况下,在哈希表中,将目标存储位置存储的容器标识清空。
19、在其中一个实施例中,根据雪花算法,得到目标容器的唯一标识,包括:
20、根据容器标识,获取目标容器对应的标识时间戳;
21、获取雪花算法的运行环境下的系统时间戳;
22、在标识时间戳大于系统时间戳的情况下,生成报错信息;
23、在标识时间戳不大于系统时间戳的情况下,运行雪花算法,生成目标容器的唯一标识。
24、第二方面,本申请还提供了一种标识生成装置。装置包括:
25、获取模块,用于在目标容器进程启动的情况下,获取目标容器的容器标识;
26、转换模块,用于获取哈希表,将容器标识存储到哈希表中,获取容器标识在哈希表中的地址标识,作为目标容器的工作标识;
27、构建模块,用于根据工作标识,构建雪花算法;
28、生成模块,用于根据雪花算法,得到目标容器的唯一标识。
29、第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
30、在目标容器进程启动的情况下,获取目标容器的容器标识;
31、获取哈希表,将容器标识存储到哈希表中,获取容器标识在哈希表中的地址标识,作为目标容器的工作标识;
32、根据工作标识,构建雪花算法;
33、根据雪花算法,得到目标容器的唯一标识。
34、第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
35、在目标容器进程启动的情况下,获取目标容器的容器标识;
36、获取哈希表,将容器标识存储到哈希表中,获取容器标识在哈希表中的地址标识,作为目标容器的工作标识;
37、根据工作标识,构建雪花算法;
38、根据雪花算法,得到目标容器的唯一标识。
39、第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
40、在目标容器进程启动的情况下,获取目标容器的容器标识;
41、获取哈希表,将容器标识存储到哈希表中,获取容器标识在哈希表中的地址标识,作为目标容器的工作标识;
42、根据工作标识,构建雪花算法;
43、根据雪花算法,得到目标容器的唯一标识。
44、上述标识生成方法、装置、计算机设备、存储介质和计算机程序产品,在目标容器进程启动的情况下,获取目标容器的容器标识;获取哈希表,将容器标识存储到哈希表中,获取容器标识在哈希表中的地址标识,作为目标容器的工作标识;根据工作标识,构建雪花算法;根据雪花算法,得到目标容器的唯一标识。能够在容器化部署服务,快速高效的确定目标容器的工作标识,从而利用工作标识构建得到的雪花算法生成目标容器的全局唯一id,提高了容器化部署分布式id的生成效率。
本文档来自技高网...【技术保护点】
1.一种标识生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述容器标识存储到所述哈希表中,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述哈希值,将所述容器标识存储到所述哈希表中,包括:
4.根据权利要求3所述的方法,其特征在于,所述获取所述容器标识在所述哈希表中的地址标识,作为所述目标容器的工作标识,包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述雪花算法,得到所述目标容器的唯一标识,包括:
7.一种标识生成装置,其特征在于,所述装置包括:
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程
...【技术特征摘要】
1.一种标识生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述容器标识存储到所述哈希表中,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述哈希值,将所述容器标识存储到所述哈希表中,包括:
4.根据权利要求3所述的方法,其特征在于,所述获取所述容器标识在所述哈希表中的地址标识,作为所述目标容器的工作标识,包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述雪花算法,...
【专利技术属性】
技术研发人员:胡天协,范者正,张年杰,孙悦,
申请(专利权)人:中国工商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。