[发明专利]分布式ID的生成方法及装置有效
申请号: | 202011465364.9 | 申请日: | 2020-12-14 |
公开(公告)号: | CN112579566B | 公开(公告)日: | 2023-03-31 |
发明(设计)人: | 桑成刚;张晓明 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F21/62 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆;姜鹏 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 id 生成 方法 装置 | ||
1.分布式ID的生成方法,其特征在于,包括:
在当前服务本次需要生成一个分布式ID时,生成初始编码;
利用所述初始编码,以及根据预先设置的校验码生成规则,生成校验码;
将所述初始编码和所述校验码进行合成,得到本次需要生成的分布式ID;
所述生成校验码,包括:
从所述初始编码中进行数字采样,得到至少一个采样数字;
将所述至少一个采样数字处理成一个十进制采样值;
根据预先配置的校验位对应的位数,计算出所述校验位对应最大编码时的十进制校验值;
将所述十进制采样值对所述十进制校验值进行取余计算;
将取余计算得到的结果确定为与所述校验位对应的校验码;
在所述从所述初始编码中进行数字采样之前,进一步包括:将所述初始编码转换成十进制的值;
从所述十进制的值中执行所述进行数字采样;
所述将所述至少一个采样数字处理成一个十进制采样值,包括:
针对所述至少一个采样数字中的每一个采样数字,将该采样数字乘以第一设定值,将乘积除以第二设定值得到商值,以及将该乘积对第三设定值取余计算得到取余值,将该商值与该取余值相加,得到至少一个变换后的采样数字;
将所述至少一个变换后的采样数字相加,并对相加后得到的值乘以第四设定值,得到所述十进制采样值。
2.根据权利要求1所述的方法,其特征在于,
进一步包括:配置所述初始编码和所述校验码在所述分布式ID中的位置;其中,所述初始编码在所述分布式ID的首端,所述校验码在所述分布式ID的尾端;
将所述初始编码和所述校验码进行合成,包括:将所述初始编码按照所述校验位的位数左移;将左移后的所述初始编码与所述校验码按位或运算。
3.根据权利要求1-2中任一所述的方法,其特征在于,
所述初始编码包括以下编码区间:符号位、时间戳位、服务位和序列号位;
进一步包括:配置所述每一个编码区间在所述分布式ID中的位置,以及,配置每一个编码区间的位数;
所述生成与编码位对应的初始编码,包括:
获取所述当前服务对应的唯一服务编码,将所述唯一服务编码放置在本次需要生成的分布式ID的所述服务位上;
根据所述唯一服务编码,确定所述当前服务上一次生成的分布式ID中序列号位的编码是否为最大编码;
若否,将所述上一次生成的分布式ID中序列号位的编码加1后得到的编码放置在本次需要生成的分布式ID的所述序列号位上,以及将所述上一次生成的分布式ID中时间戳位的编码放置在本次需要生成的分布式ID的所述时间戳位上;
若是,则确定当前时间点到设定时间点的差值,将该差值对应的二进制编码放置在本次需要生成的分布式ID的所述时间戳位上,将本次需要生成的分布式ID的序列号位上设置为最小编码;
将本次需要生成的分布式ID的符号位设置为预设值。
4.分布式ID的校验方法,其特征在于,用于校验使用权利要求1-3任一所述的分布式ID的生成方法生成的ID;
接收用户在进行数据访问时输入的分布式ID;
从所述分布式ID中提取出初始编码和待校验的第一校验码;
利用所述初始编码,按照分布式ID在生成时使用的校验码生成规则,生成第二校验码;
在所述第一校验码与所述第二校验码相同时,则确定所述分布式ID合法,否则,确定所述分布式ID不合法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011465364.9/1.html,转载请声明来源钻瓜专利网。