[发明专利]一种分布式系统唯一标识符及其生成方法有效
| 申请号: | 201811572842.9 | 申请日: | 2018-12-21 |
| 公开(公告)号: | CN111353275B | 公开(公告)日: | 2023-07-04 |
| 发明(设计)人: | 张守义 | 申请(专利权)人: | 北京宸信征信有限公司 |
| 主分类号: | G06F40/126 | 分类号: | G06F40/126 |
| 代理公司: | 北京康思博达知识产权代理事务所(普通合伙) 11426 | 代理人: | 范国锋;刘冬梅 |
| 地址: | 100190 北京市海淀*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 分布式 系统 唯一 标识符 及其 生成 方法 | ||
本发明提供了一种分布式系统生成唯一标识的方法以及该方法获得的分布式系统的唯一标识符。该方法通过将包括数据类型代码、IP数字地址、时间截和自增序列在内的多种信息依设定顺序拼接后得到的多位数的唯一标识符,可以获得在分布系统内的唯一性;并且,该方法资源消耗小、并发性高。
技术领域
本发明涉及一种对分布式系统进行标识的方法,特别涉及一种在分布式系统中生成唯一标识符的方法,属于分布式系统领域。
背景技术
分布式系统是建立在网络之上的软件系统,处理各项协助的任务,整合得到结果。分布式系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。分布式系统通过分布式操作系统以全局的方式管理计算机资源。
在分布式系统的使用过程中,有很多场景需要获得一个全局的唯一标识符,用来区分获得的数据。这个标识符需要满足:全局唯一,不能出现重复;节点间的数据便于合并等操作要求。
现有技术中获得标识符的方法有多种,例如,利用数据库带有的自增长序列功能获得,可以充分利用数据的自增长序列功能,可靠性高,使用方便;但是过分依赖数据库功能,使得数据库的压力较大。
又如,由算法机器生成的UUID(Universally Unique Identifier),为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法。UUID的复杂特性在保证了其唯一性的同时,意味着只能由计算机生成。使用UUID可以本地生成ID,延时低,性能高;但是UUID过长,很多场景不适用,比如用UUID做数据库索引字段;另外,UUID没有排序,无法保证趋势递增。
又如,使用由Flickr团队提出的Flicker方法,主要采用了MySQL的auto_increment(字段的自增属性)和replace into。为了避免单点故障,最少需要两个数据库实例,通过区分auto_increment的起始值和步长来生成奇偶数的ID。该方法充分利用数据库的自增序列机制,可靠性高;但是自增序列性能依赖单台数据库的读写性能,当数据库异常时整个系统不可用。
又如,使用类Snowflacke方法,其生成一个被划分成四个段的64bit的数字,其中,1位的不适用位;41位的时间截(精确到毫秒,41位的长度可以使用69年);10位的机器标识(10位的长度最多支持部署1024个节点);12位的序列号(12位的计数顺序号支持每个节点每毫秒产生4096个ID序号)。该方法的优点为:时间戳在高位,自增序列在低位,整个ID是趋势递增的,按照时间有序。性能高,每秒可生成几百万ID,可以根据自身业务需求灵活调整bit位划分,满足不同需求。其缺点也很明显,依赖机器时钟,如果机器时钟回拨,会导致重复ID生成;标识符在单机上是递增的,但是涉及到分布式环境时每台机器上的时钟不可能完全同步,有时候会出现不是全局递增的情况。
也有使用TDDL序列的方法,TDDL是数据库分库分表中间件,其使用数据库同步唯一标识符信息。TDDL生成方式为:每次批量取一定数量的可用唯一标识符在内存中,使用完后再请求数据库重新获取下一批可用唯一标识符。每个业务给自己的序列起个唯一的名字,隔离各个业务系统的唯一标识符。该方法可以降低数据库写压力;生成唯一标识符性能大幅度提高;不同业务使用别名区分,相互隔离。但是强依赖数据库,当数据库异常时,这个功能将不可用。
基于上述问题,本发明人在现有技术的基础上进行改进,提供了一种分布式系统生成唯一标识的方法。
发明内容
为了解决上述问题,本发明人进行了锐意研究,结果发现:通过将包括数据类型代码、IP数字地址、时间截和自增序列在内的多种信息依设定顺序拼接后得到的多位数的唯一标识符,可以获得在分布系统内的唯一性;并且,该方法资源消耗小、并发性高,从而完成了本发明。
本发明的目的在于提供以下方面:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京宸信征信有限公司,未经北京宸信征信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811572842.9/2.html,转载请声明来源钻瓜专利网。





