CN110704395A - 一种用于分布式系统的唯一标识方法 - Google Patents
一种用于分布式系统的唯一标识方法 Download PDFInfo
- Publication number
- CN110704395A CN110704395A CN201910882728.4A CN201910882728A CN110704395A CN 110704395 A CN110704395 A CN 110704395A CN 201910882728 A CN201910882728 A CN 201910882728A CN 110704395 A CN110704395 A CN 110704395A
- Authority
- CN
- China
- Prior art keywords
- bit
- check code
- bits
- length
- unique identification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 239000006227 byproduct Substances 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 abstract description 3
- 238000012795 verification Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于分布式系统的唯一标识方法,基于64位整数生成标识,为避免生成负数,将第1位预设为零,只使用剩余的63位;其中,标识包括五个部分:时间戳,标识生成时间与基础时间的差值;序号,在单一节点保持自增;分布式节点标识,包括数据中心和计算节点,其中数据中心表示不同的数据中心,计算节点表示单一数据中心的计算节点;标识算法版本,根据不同的应用场景对标识的算法进行分类;校验码,使用每位的权值与位值乘,和除以16取余数;使用余数根据码表查找相应的校验码。本发明生成的标识包含一个校验码进行有效性检查,包含一个版本号区分不同的生成方式以适应不同的业务场景,且排序规律,查询效率高。
Description
技术领域
本发明涉及分布式系统标识生成技术领域,特别是一种用于分布式系统的唯一标识方法。
背景技术
随着现代系统向着分布式服务发展,需要一种数据标识的生成算法,算法要求生成的标识在同一系统中全局唯一。
传统的数据标识生成方式存在以下缺点:
1、数据库自增,在分布式和大并发的情况下性能较低,由于数据库实现不同不利于迁移与合并;
2、UUID,数据量大,无排序,查询效率低。
发明内容
为解决现有技术中存在的问题,本发明提供了一种用于分布式系统的唯一标识方法,此方法生成的标识包含一个校验码进行有效性检查,包含一个版本号区分不同的生成方式以适应不同的业务场景,且排序规律,查询效率高。
本发明采用的技术方案是:
一种用于分布式系统的唯一标识方法,基于64位整数生成标识,为避免生成负数,将第1位预设为零,只使用剩余的63位;其中,标识包括五个部分:
时间戳,标识生成时间与基础时间的差值;
序号,在单一节点保持自增;
分布式节点标识,包括数据中心和计算节点,其中数据中心表示不同的数据中心,计算节点表示单一数据中心的计算节点;
标识算法版本,根据不同的应用场景对标识的算法进行分类;
校验码,使用每位的权值与位值乘,和除以16取余数;使用余数根据码表查找相应的校验码。
优选地,所述时间戳表示生成标识时与基础时间相差的秒数,长度为31位,取值范围为0至231-1。
优选地,所述序号为单一节点维护的自增量,长度为17位,取值范围为0至217-1。
优选地,所述数据中心和计算节点的使用可以区分不同的标识生成节点,其中数据中心的长度为4位,计算节点的长度为4位,包含256个不同的标识生成点;在实际操作中可以使用算法版本字段动态调整此数据段的长度以容纳不同的业务范围。
优选地,标识中的标识算法版本和校验码的位置及长度固定,其余数据段长度可变。
优选地,所述标识算法版本的长度为3位,版本号取值范围0-7,可以表示8个不同生成规则,可以根据不同业务模块对前面的节点、序列号位数、时间戳位数进行约定,满足不同业务系统的需求。
优选地,所述校验码的位数为4位,校验码的生成步骤具体如下:
除校验码位的其它位按每4位值乘以系数,然后求和后除16取余查校验码表获取。
优选地,所述校验码的生成步骤具体如下:
a、排除标识的最后4位值;
b、从原标识的倒数第5位至倒数第64位共60位二进制数以4位为一段进行分割;
c、每4位与位因子进行相乘;
d、所有加权因子积相加;
e、加权因子和MOD 16,得到一个0-15的值;
f、按照值查询校验码表得到实际的校验码;
g、将校验码添加到标识的最后四位。
本发明的有益效果是:
1、不依赖于数据库生成。
2、基于64位整数类型。
3、全局唯一。
4、单节点趋势递增,最新生成的总是最大。
5、版本化,根据应用场景不同对算法进行区分。
6、自校验,包含校验码可以确认标识是否有效。
附图说明
图1为本发明实施例中标识生成的流程示意图;
图2为本发明实施例中标识校验的流程示意图。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例
如图1所示,一种用于分布式系统的唯一标识方法,基于64位整数生成标识,为避免生成负数,将第1位预设为零,只使用剩余的63位;其中,标识包括五个部分:
时间戳,标识生成时间与基础时间的差值;
序号,在单一节点保持自增;
分布式节点标识,包括数据中心和计算节点,其中数据中心表示不同的数据中心,计算节点表示单一数据中心的计算节点;
标识算法版本,根据不同的应用场景对标识的算法进行分类;
校验码,可也称检验码,使用每位的权值与位值乘,和除以16取余数;使用余数根据码表查找相应的校验码。
在其中一个实施例中,所述时间戳表示生成标识时与基础时间相差的秒数,长度为31位,取值范围为0至231-1。
在其中一个实施例中,所述序号为单一节点维护的自增量,长度为17位,取值范围为0至217-1。
在其中一个实施例中,所述数据中心和计算节点的使用可以区分不同的标识生成节点,其中数据中心的长度为4位,计算节点的长度为4位,包含256个不同的标识生成点;在实际操作中可以使用算法版本字段动态调整此数据段的长度以容纳不同的业务范围。
在其中一个实施例中,标识中的标识算法版本和校验码的位置及长度固定,其余数据段长度可变。
在其中一个实施例中,所述标识算法版本的长度为3位,版本号取值范围0-7,可以表示8个不同生成规则,可以根据不同业务模块对前面的节点、序列号位数、时间戳位数进行约定,满足不同业务系统的需求。
在其中一个实施例中,所述校验码的位数为4位,校验码的生成步骤具体如下:
除校验码位的其它位按每4位值乘以系数,然后求和后除16取余查校验码表获取。
在其中一个实施例中,所述校验码的生成步骤具体如下:
a、排除标识的最后4位值;
b、从原标识的倒数第5位至倒数第64位共60位二进制数以4位为一段进行分割;
c、每4位与位因子进行相乘;
d、所有加权因子积相加;
e、加权因子和MOD 16,得到一个0-15的值;
f、按照值查询校验码表得到实际的校验码;
g、将校验码添加到标识的最后四位。
如图2所示,为标识校验的流程,根据校验码的生成方法重新计算校验码并与标识中的校验码进行比对,如匹配,则为有效标识;如不匹配,则为无效标识。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (8)
1.一种用于分布式系统的唯一标识方法,其特征在于:基于64位整数生成标识,为避免生成负数,将第1位预设为零,只使用剩余的63位;其中,标识包括五个部分:
时间戳,标识生成时间与基础时间的差值;
序号,在单一节点保持自增;
分布式节点标识,包括数据中心和计算节点,其中数据中心表示不同的数据中心,计算节点表示单一数据中心的计算节点;
标识算法版本,根据不同的应用场景对标识的算法进行区分;
校验码,使用每位的权值与位值乘,和除以16取余数;使用余数根据码表查找相应的校验码。
2.根据权利要求1所述的用于分布式系统的唯一标识方法,其特征在于,所述时间戳表示生成标识时与基础时间相差的秒数,长度为31位,取值范围为0至231-1。
3.根据权利要求1所述的用于分布式系统的唯一标识方法,其特征在于,所述序号为单一节点维护的自增量,长度为17位,取值范围为0至217-1。
4.根据权利要求1所述的用于分布式系统的唯一标识方法,其特征在于,所述数据中心和计算节点的使用可以区分不同的标识生成节点,其中数据中心的长度为4位,计算节点的长度为4位,包含256个不同的标识生成点;在实际操作中可以使用算法版本字段动态调整此数据段的长度以容纳不同的业务范围。
5.根据权利要求1所述的用于分布式系统的唯一标识方法,其特征在于,标识中的标识算法版本和校验码的位置及长度固定,其余数据段长度可变。
6.根据权利要求5所述的用于分布式系统的唯一标识方法,其特征在于,所述标识算法版本的长度为3位,版本号取值范围0-7,可以表示8个不同生成规则,可以根据不同业务模块对前面的节点、序列号位数、时间戳位数进行约定,满足不同业务系统的需求。
7.根据权利要求5所述的用于分布式系统的唯一标识方法,其特征在于,所述校验码的位数为4位,校验码的生成步骤具体如下:
除校验码位的其它位按每4位值乘以系数,然后求和后除16取余查校验码表获取。
8.根据权利要求7所述的用于分布式系统的唯一标识方法,其特征在于,所述校验码的生成步骤具体如下:
a、排除标识的最后4位值;
b、从原标识的倒数第5位至倒数第64位共60位二进制数以4位为一段进行分割;
c、每4位与位因子进行相乘;
d、所有加权因子积相加;
e、加权因子和MOD 16,得到一个0-15的值;
f、按照值查询校验码表得到实际的校验码;
g、将校验码添加到标识的最后四位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910882728.4A CN110704395B (zh) | 2019-09-18 | 2019-09-18 | 一种用于分布式系统的唯一标识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910882728.4A CN110704395B (zh) | 2019-09-18 | 2019-09-18 | 一种用于分布式系统的唯一标识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110704395A true CN110704395A (zh) | 2020-01-17 |
CN110704395B CN110704395B (zh) | 2022-12-09 |
Family
ID=69195450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910882728.4A Active CN110704395B (zh) | 2019-09-18 | 2019-09-18 | 一种用于分布式系统的唯一标识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704395B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112383627A (zh) * | 2020-11-16 | 2021-02-19 | 四川长虹电器股份有限公司 | 一种分布式系统中生成唯一标识的方法 |
CN112579566A (zh) * | 2020-12-14 | 2021-03-30 | 浪潮云信息技术股份公司 | 分布式id的生成方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06268715A (ja) * | 1992-10-19 | 1994-09-22 | Internatl Business Mach Corp <Ibm> | トークン識別システム |
JP2009025935A (ja) * | 2007-07-18 | 2009-02-05 | B-Core Inc | チェックデジット算出方法及び装置並びにプログラム |
CN103823810A (zh) * | 2012-11-19 | 2014-05-28 | 中国电信股份有限公司 | 一种在分布式系统中生成唯一键的方法、装置及系统 |
CN105404469A (zh) * | 2015-10-22 | 2016-03-16 | 浙江宇视科技有限公司 | 一种视频数据的存储方法和系统 |
-
2019
- 2019-09-18 CN CN201910882728.4A patent/CN110704395B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06268715A (ja) * | 1992-10-19 | 1994-09-22 | Internatl Business Mach Corp <Ibm> | トークン識別システム |
JP2009025935A (ja) * | 2007-07-18 | 2009-02-05 | B-Core Inc | チェックデジット算出方法及び装置並びにプログラム |
CN103823810A (zh) * | 2012-11-19 | 2014-05-28 | 中国电信股份有限公司 | 一种在分布式系统中生成唯一键的方法、装置及系统 |
CN105404469A (zh) * | 2015-10-22 | 2016-03-16 | 浙江宇视科技有限公司 | 一种视频数据的存储方法和系统 |
Non-Patent Citations (2)
Title |
---|
张广庆等: "一维条码校验码及其算法详解", 《条码与信息系统》 * |
徐凯等: "基于Arduino的AIS数据分布式采集研究", 《计算机测量与控制》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112383627A (zh) * | 2020-11-16 | 2021-02-19 | 四川长虹电器股份有限公司 | 一种分布式系统中生成唯一标识的方法 |
CN112579566A (zh) * | 2020-12-14 | 2021-03-30 | 浪潮云信息技术股份公司 | 分布式id的生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110704395B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2724136C1 (ru) | Способ и устройство обработки данных | |
CN110704395B (zh) | 一种用于分布式系统的唯一标识方法 | |
CN102708183B (zh) | 数据压缩的方法和装置 | |
CN106777258B (zh) | 一种医疗大数据存储中Hbase行键的编码及压缩方法 | |
CN111353275B (zh) | 一种分布式系统唯一标识符及其生成方法 | |
CN110770725B (zh) | 数据处理方法及装置 | |
CN107256132B (zh) | 一种基于性能测试的异构Redis集群存储分配方法 | |
CN110543472B (zh) | 数据对账方法及相关装置 | |
Papadopoulos et al. | Authenticated multistep nearest neighbor search | |
CN108460030A (zh) | 一种基于改进的布隆过滤器的集合元素判断方法 | |
CN112905125A (zh) | 一种基于计算机高精度计算的数据存储及读取方法 | |
US11150993B2 (en) | Method, apparatus and computer program product for improving inline pattern detection | |
CN111126002A (zh) | 一种数据全局唯一性标识id的生成方法及系统 | |
CN112765408A (zh) | 一种控制系统的设备信息查询方法及查询设备 | |
CN103051480B (zh) | 一种dn的存储方法及dn存储装置 | |
CN108365962B (zh) | 一种证书吊销列表查询方法及装置 | |
CN1231747A (zh) | 业务数据库系统中负载情况的监测 | |
WO2022061760A1 (en) | Can address assignment | |
CN115293243A (zh) | 数据资产智能匹配的实现方法、装置及设备 | |
CN114970464A (zh) | 用于标识生成的方法、装置、终端设备及存储介质 | |
CN112131229A (zh) | 基于区块链的分布式数据存取方法、装置及存储节点 | |
CN113886491A (zh) | 分布式数据处理方法、装置、电子设备及存储介质 | |
CN107085571B (zh) | 一种校验规则的执行方法和装置 | |
CN112445800A (zh) | 一种数据流水号的生成方法、系统及电子设备 | |
CN110909001A (zh) | 一种数据种子植入及溯源追踪的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 508, 5th Floor, Building 1, No. 63 Xi'an South Road, Jinniu District, Chengdu City, Sichuan Province 610000 Patentee after: Sichuan Shangtong Payment Technology Co.,Ltd. Country or region after: China Address before: No. 36 and 37, 11th floor, Seattle business building, No. 69, Xi'an south road, Jinniu District, Chengdu, Sichuan 610000 Patentee before: SICHUAN BUSINESS EASY CO.,LTD. Country or region before: China |
|
CP03 | Change of name, title or address |