[发明专利]一种全局唯一ID生成方法、系统及存储介质有效
申请号: | 201711386024.5 | 申请日: | 2017-12-20 |
公开(公告)号: | CN108108252B | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | 刘畅;吴鹏 | 申请(专利权)人: | 马上消费金融股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F16/22;H04L29/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 401121 重庆市渝北区*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 全局 唯一 id 生成 方法 系统 存储 介质 | ||
本发明公开了一种全局唯一ID生成方法、系统及存储介质,应用于分布式系统,包括:根据使用方需求预先将序列号ID划分定义为N个部分,并将N个部分的生成算法封装于全局唯一ID服务,其中,ID的位数不超过64比特,N为正整数;接收用户的服务请求,调用全局唯一ID服务生成与服务请求一一对应的全局唯一ID。本申请生成的ID的位数不超过64比特,能够在主流编程语言或系统平台上使用基本数据类型来表示,便于程序高效处理,在计算、存储、网络传输方面可大大节省内存、磁盘、带宽占用。另外,本申请生成的ID可以携带业务信息,使用方可根据自定义内容将ID值反解出业务相关信息,给业务系统带来了意想不到的便利。
技术领域
本发明涉及分布式系统领域,特别是涉及一种全局唯一ID生成方法、系统及存储介质。
背景技术
随着互联网的飞速发展,大规模、分布式应用系统逐渐成为软件系统的标配。在分布式系统中,单机系统原有的基础组件往往不能满足需求,需要重新设计和实现,数据ID(identification,序列号)就是其中一例。现有技术中,广泛应用于分布式系统的全局唯一ID的典型生成方式是UUID(Universally Unique Identifier,通用唯一识别码),其标准格式是一个32位的16进制字符串,其二进制表示为128比特,至少需要16个字节来表示。
可见,一方面UUID的长度超过了大多数主流编程语言基本数据类型的长度,如Java/C++中最长的基本数据类型(long型)只有8个字节,要表示16字节的UUID,则需要使用复合类型,占用的存储空间及网络带宽较多。另一方面,UUID是一个随机序列号,其内容通常是不透明的,不能携带业务相关信息,例如无法从UUID本身推断其表示一个客户还是一个订单。
因此如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种全局唯一ID生成方法、系统及存储介质,ID位数不超过64比特,能够在主流编程语言或系统平台上使用基本数据类型来表示,便于程序高效处理,在计算、存储、网络传输方面可大大节省内存、磁盘、带宽占用;ID可以携带业务信息,使用方可根据自定义内容将ID值反解出业务相关信息,给业务系统带来了意想不到的便利。
为解决上述技术问题,本发明提供了一种全局唯一ID生成方法,应用于分布式系统,包括:
根据使用方需求预先将序列号ID划分定义为N个部分,并将N个所述部分的生成算法封装于全局唯一ID服务,其中,所述ID的位数不超过64比特,N为正整数;
接收用户的服务请求,调用所述全局唯一ID服务生成与所述服务请求一一对应的全局唯一ID。
优选地,所述ID划分定义的N个部分包括用于指示当前ID版本的版本号部分。
优选地,所述ID划分定义的N个部分包括用于指示当前ID生成时间的时间戳部分。
优选地,所述ID划分定义的N个部分包括用于指示当前所述ID在所述生成时间中的生成序列的序列号部分。
优选地,所述ID划分定义的N个部分包括用于指示当前ID生成机房的数据中心号部分。
优选地,所述ID划分定义的N个部分包括用于指示当前所述ID在所述生成机房中的生成机器的机器号部分。
优选地,所述ID划分定义的N个部分包括用于指示当前ID业务数据类型的业务编号部分。
优选地,所述ID划分定义的N个部分包括预留的用于根据所述使用方需求扩展的扩展部分。
为解决上述技术问题,本发明还提供了一种全局唯一ID生成系统,应用于分布式系统,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于马上消费金融股份有限公司,未经马上消费金融股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711386024.5/2.html,转载请声明来源钻瓜专利网。