The invention provides a distributed only global ID generation method, which comprises the following steps: S1: set the interval process ID as the logical process of encoding digits and individual ID interval number; S2: set the game time of birth; S3: start the server, to calculate the individual ID interval can be divided with the initial value; S4: receiving ID distribution of instruction, the only global ID distributed generation; S5: when shut down the server, S3 server restarts execution steps. The present invention distributed only global ID generation method can effectively deal with the problem, the process of collapse of the accident is avoided only ID generation algorithm of the enormous pressure on the computer IO, and generates the ID for storage and transmission, meet the actual needs of game servers.
【技术实现步骤摘要】
分布式全球唯一ID生成方法
本专利技术涉及游戏服务器处理技术,具体涉及分布式全球唯一ID的生成方法。
技术介绍
游戏服务器为了支撑游戏的正常运行,对游戏中每个人物、物品甚至每项变量都需要设置一个唯一的ID,以保证游戏的正常运行。现有的唯一ID生成方法一般有两种形式,UUID生成算法和累加生成法。UUID生成算法虽然技术成熟、效果好,但其长度太长,不利于保存和传输,难以在游戏服务器中应用;而累加生成法在生成下一个ID前,必须记录当前生成的最大ID,如果当前生成的最大ID是记录在内存上,当出现异常情况时将丢失记录;如果当前生成的最大ID记录在硬盘中的话,由于ID生成是一个非常频繁的操作,将会对计算机的硬盘IO造成压力。
技术实现思路
针对上述现有技术不足,本专利技术要解决的技术问题是提供一种能有效应对进程意外崩溃的问题、避免了对计算机IO所造成巨大压力的唯一ID生成算法,并且生成的ID便于保存和传输,满足游戏服务器的实际使用需求。为解决上述技术问题,本专利技术采用的技术方案为,分布式全球唯一ID生成方法,其特征在于:包括如下步骤:S1:设定为逻辑进程编码的进程ID区间的位数,并为每个逻辑进程编码生成一个进程ID区间的值;设定个体ID区间的位数,为每个单位时间段按顺序划分个体ID区间的可分配值;所述分布式全球唯一ID由进程ID区间和个体ID区间拼接而成;每个逻辑进程的进程ID区间的值对应的个体ID区间,为该逻辑进程可分配ID的区间;S2:设定游戏出生时间;S3:启动服务器,获取启动当时的时间,根据启动当时时间与游戏出生时间,计算个体ID区间的可分配初始值,并将所述可 ...
【技术保护点】
分布式全球唯一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生成完毕,返回本步骤的开始 ...
【技术特征摘要】
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中...
【专利技术属性】
技术研发人员:吴开,
申请(专利权)人:广东星辉天拓互动娱乐有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。