【技术实现步骤摘要】
用于全球同服架构的分布式ID生成方法、装置及设备
本专利技术涉及计算机
,尤其涉及一种用于全球同服架构的分布式ID生成方法、装置、设备及存储介质。
技术介绍
游戏服务器在全球同服架构的技术上已经得到了广泛应用,可以同时满足在线玩家几万到几十万人。为了对玩家以及各种业务进行统一的管理,对于每一个玩家和每一项业务而言,均需要对应生成与之对应的唯一ID,且需要保证ID的唯一性和总体递增的效果。当前主流的生成ID的方法是基于数据库自增ID,基于数据库自增ID能够保证ID的唯一性和递增性,但是当新进玩家和业务的增多,基于数据库生成ID的操作会极为频繁,将会对数据库IO造成巨大的压力。
技术实现思路
本专利技术的目的在于解决现有技术中基于数据库生成ID的操作过于频繁时,对数据库IO造成巨大压力的问题。因此,本专利技术提供一种用于全球同服架构的分布式ID生成方法、装置、设备及存储介质,分布式ID的生成不依赖于数据库,避免了对数据库IO造成巨大的压力。为解决上述问题,本专利技术的实施方式公开了一种用于全球同 ...
【技术保护点】
1.一种用于全球同服架构的分布式ID生成方法,其特征在于,预先设定应用于所述全球同服架构的ID的总位数,将所述ID划分为节点标识区间位、时间戳区间位和节点内递增区间位并设定所述节点标识区间位、所述时间戳区间位和所述节点内递增区间位的位数,所述分布式ID生成方法包括:/n接收目标业务请求方发送的ID生成请求;/n解析所述ID生成请求携带的节点标识,以所述节点标识本地生成所述节点标识区间位;/n对与所述目标业务请求方对应的当前时间戳和所述全球同服架构的上线时间戳作差,本地生成所述时间戳区间位,所述当前时间戳、所述上线时间戳和所述时间戳区间位均以毫秒级为单位;/n取所述当前时间戳 ...
【技术特征摘要】 【专利技术属性】
1.一种用于全球同服架构的分布式ID生成方法,其特征在于,预先设定应用于所述全球同服架构的ID的总位数,将所述ID划分为节点标识区间位、时间戳区间位和节点内递增区间位并设定所述节点标识区间位、所述时间戳区间位和所述节点内递增区间位的位数,所述分布式ID生成方法包括:
接收目标业务请求方发送的ID生成请求;
解析所述ID生成请求携带的节点标识,以所述节点标识本地生成所述节点标识区间位;
对与所述目标业务请求方对应的当前时间戳和所述全球同服架构的上线时间戳作差,本地生成所述时间戳区间位,所述当前时间戳、所述上线时间戳和所述时间戳区间位均以毫秒级为单位;
取所述当前时间戳的当前毫秒数进行与所述业务请求方对应的节点内递增操作,本地生成所述节点内递增区间位;
将所述节点标识区间位、所述时间戳区间位和所述节点内递增区间位进行本地拼接,获得一个目标ID,并反馈所述目标ID至所述目标业务请求方。
2.如权利要求1所述的用于全球同服架构的分布式ID生成方法,其特征在于,在所述全球服架构的上线时间戳与所述当前时间戳的差值大于预设值时,所述分布式ID生成方法还包括:
重新设定所述节点标识区间位、所述时间戳区间位和所述节点内递增区间位的位数,其中,重新设定所述节点标识区间位、所述时间戳区间位和所述节点内递增区间位的位数的同时保证所述ID的总位数不变。
3.如权利要求2所述的用于全球同服架构的分布式ID生成方法,其特征在于,所述重新设定所述节点标识区间位、所述时间戳区间位和所述节点内递增区间位的位数包括:
将所述时间戳区间位的原始设定位数扩大至第一目标设定位数;
将所述节点标识区间位的原始设定位数缩小至第二目标设定位或将所述节点内递增区间位的原始设定位数缩小至第三目标设定位数;
所述第二目标设定位数与所述节点标识区间位的原始设定位数的差值或所述第三目标设定位数与所述节点内递增区间位的原始设定位数的差值均与所述第一目标设定位数与所述时间戳区间位的原始设定位数的差值相同,以使所述全球同服架构的ID的总位数保持不变。
4.如权利要求1-3任意一项所述的用于全球同服架构的分布式ID生成方法,其特征在于,在所述反馈所述目标ID至所述目标业务请求方之前,所述分布式ID生成方法还包括:
对所述时间戳区间位进行左移位操作,以生成新的时间戳区间位;
对所述节点标识区间位进行左移位操作,以生成新的节点标识区间位;
将所述新的时间戳区间位、所述新的节点标识区间位和所述节点内递增区间位拼接,获得一个新的ID;
将所述新的ID作为所述目标ID发送至所述目标业务请求方。
5.一种用于全球同服架构的分布式ID生成装置,其特征在于,所述分布式ID生成装置包括:
接收模块,用于接收目标业务请求方发送的ID生成请求;
技术研发人员:郭小林,
申请(专利权)人:上海莉莉丝科技股份有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。