[发明专利]分布式全球唯一ID生成方法有效
申请号: | 201310684624.5 | 申请日: | 2013-12-13 |
公开(公告)号: | CN103838604B | 公开(公告)日: | 2017-01-11 |
发明(设计)人: | 吴开 | 申请(专利权)人: | 广东星辉天拓互动娱乐有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;H04L29/06 |
代理公司: | 北京联瑞联丰知识产权代理事务所(普通合伙)11411 | 代理人: | 黄冠华 |
地址: | 510000 广东省广州市天河区软件园高唐新*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 全球 唯一 id 生成 方法 | ||
1.分布式全球唯一ID生成方法,其特征在于:包括如下步骤:
S1:设定为逻辑进程编码的进程ID区间的位数,并为每个逻辑进程编码生成一个进程ID区间的值;设定个体ID区间的位数,为每个单位时间段按顺序划分个体ID区间的可分配值;所述分布式全球唯一ID由进程ID区间和个体ID区间拼接而成;每个逻辑进程的进程ID区间的值对应的个体ID区间,为该逻辑进程可分配ID的区间;
S2:设定游戏出生时间;
S3:启动服务器,获取启动当时的时间,根据启动当时时间与游戏出生时间,计算个体ID区间的可分配初始值,并为每个逻辑进程分别缓存可分配初始值减1为已分配值;
S4:接收ID分配指令,确定对应的逻辑进程,对该逻辑进程的已分配值进行加1,作为待分配个体ID区间的值;根据接收ID分配指令的时间与游戏出生时间,计算个体ID区间的可分配最大值;判断待分配个体ID区间的值是否小于个体ID区间的可分配最大值,若是,则保存该待分配个体ID区间的值缓存为新的已分配值,并把该待分配个体ID区间的值与其对应的逻辑进程的进程ID区间的值拼接成新分配的分布式全球唯一ID,分布式全球唯一ID生成完毕,返回本步骤开始,等待下一个ID分配指令;否则终止进程;
S5:当关闭服务器后,服务器重新启动时执行步骤S3。
2.根据权利要求1所述的分布式全球唯一ID生成方法,其特征在于:所述步骤S1中,为每个时间段按顺序划分个体ID区间的可分配值的步骤,具体为:设定在一个单位时间段内的每个逻辑进程可分配的ID数量的最大值,以该最大值为周期划分个体ID区间的取值范围,每个取值范围按顺序对应一个单位时间段;
所述步骤S3中,根据启动当时时间与游戏出生时间,计算个体ID区间的可分配初始值的步骤,具体为:根据启动当时时间与游戏出生时间的差值,以游戏出生时间作为第一个单位时间段的起点,确定启动当时时间所在的单位时间段,确定该单位时间段对应的个体ID区间取值范围,该取值范围的最小值为所述可分配初始值;
所述步骤S4中,根据接收ID分配指令的时间与游戏出生时间,计算个体ID区间的可分配最大值的步骤,具体为:根据接收ID分配指令的时间与游戏出生时间的差值,以游戏出生时间作为第一个单位时间段的起点,确定启动当时时间所在的单位时间段,确定该单位时间段对应的个体ID区间取值范围,该取值范围的最大值为所述个体ID区间的可分配最大值。
3.根据权利要求1所述的分布式全球唯一ID生成方法,其特征在于:所述步骤S1中,进程ID区间的位数根据游戏所需逻辑进程数量而确定,逻辑进程的数量减1后以二进制数表示,该二进制数的位数为进程ID区间的最少所需位数;
个体ID区间的位数由一个单位时间段内的每个逻辑进程可分配的ID数量的最大值预计值与游戏寿命预计值而确定,该最大值预计值与游戏寿命预计值相乘后减1以二进制数表示,该二进制数的位数为个体ID区间的最少所需位数。
4.根据权利要求1所述的分布式全球唯一ID生成方法,其特征在于:步骤S1中,所述进程ID区间设定为16位,个体ID区间设定为48位。
5.根据权利要求2-4任意一项所述的分布式全球唯一ID生成方法,其特征在于:所述单位时间段为游戏最小时间单位。
6.根据权利要求1所述的分布式全球唯一ID生成方法,其特征在于:所述步骤S3中还包括在启动服务器时,检测服务器所获取的当前时间是否合法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东星辉天拓互动娱乐有限公司,未经广东星辉天拓互动娱乐有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310684624.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:输电线路的远方跳闸方法
- 下一篇:一种异步电机最优转差频率控制方法