【技术实现步骤摘要】
面向业务实体的全局ID生成方法及装置
本专利技术涉及数据信息领域,具体地涉及一种面向业务实体的全局ID生成方法、一种面向业务实体的全局ID生成装置以及对应的存储介质。
技术介绍
业务系统的业务逻辑中,都具有业务实体的概念。业务逻辑往往以业务实体为操作核心,设计和开发业务流程。比如一个电子商务系统,就具有订单,商品,库存等业务实体。如何很好的设计一个业务系统,决定了线上产品的执行效果和用户体验。业务实体需要具有自己的ID,这个ID应该在该实体所在的业务领域内是全局唯一的。这就涉及到了生成业务实体的全局唯一ID的问题。在现有生成唯一ID的方法中。许多方法使用UUID生成唯一索引,或者使用UUID的部分几位和时间戳,IP,用户ID等数据拼接为一个全局唯一的ID字符串,UUID是通用唯一识别码,能够保证生成的识别码是绝对唯一的。但是这种方式也有问题,首先这种字符串拼接的方式执行性能较低,并且生成的ID是无序的,ID往往是作为数据库的索引,因此这种ID入库的性能也较差。也有一些方法使用数据库的唯一索引来生成唯一ID,但是这种方 ...
【技术保护点】
1.一种面向业务实体的全局ID生成方法,所述生成方法基于SnowFlake算法,其生成的全局ID包括时间戳、机器ID和序列号,其特征在于,所述全局ID还包括业务ID。/n
【技术特征摘要】
1.一种面向业务实体的全局ID生成方法,所述生成方法基于SnowFlake算法,其生成的全局ID包括时间戳、机器ID和序列号,其特征在于,所述全局ID还包括业务ID。
2.根据权利要求1所述的生成方法,其特征在于,所述业务ID与业务类型相对应。
3.根据权利要求1所述的生成方法,其特征在于,所述机器ID采用抢占式分布式锁的方式获取。
4.根据权利要求3所述的生成方法,其特征在于,所述机器ID采用以下方式获取:
接收包含机器ID的抢占请求,并在缓存服务中查询所述机器ID对应的缓存key是否存在;所述缓存服务响应于机器在服务启动时的连接,并保存有当前在线机器的缓存key;
若存在,则通知抢占请求的发送者重新生成机器ID并重新请求,重复上一步骤;若不存在,则采用所述机器ID作为所述抢占请求的发送者的机器ID,同时将所述机器ID对应的缓存key加入所述缓存服务。
5.根据权利要求4所述的生成方法,其特征在于,所述生成方法还包括:当接收到某一机器的服务关闭时,从所述缓存服务中删除所述机器的机器ID对应的缓存key。
6.根据权利要求4所述的生成方法,其特征在于,所述生成方法还包括:设置所述缓存key的生存周期,当所述生存周期内未收到其对应的机器的心跳信号时,从所述缓存服务中...
【专利技术属性】
技术研发人员:杨凯翔,杨晓辰,
申请(专利权)人:贝壳技术有限公司,
类型:发明
国别省市:天津;12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。