CN112383627A - 一种分布式系统中生成唯一标识的方法 - Google Patents
一种分布式系统中生成唯一标识的方法 Download PDFInfo
- Publication number
- CN112383627A CN112383627A CN202011278863.7A CN202011278863A CN112383627A CN 112383627 A CN112383627 A CN 112383627A CN 202011278863 A CN202011278863 A CN 202011278863A CN 112383627 A CN112383627 A CN 112383627A
- Authority
- CN
- China
- Prior art keywords
- unique identifier
- identifier
- timestamp
- machine
- bit
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/3015—Name registration, generation or assignment
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式系统中生成唯一标识的方法,包括将应用服务器mac地址转化为标识符;获取应用服务器生成唯一标识的时间戳;读取配置文件信息,获取机器ID;将标识符、时间戳和机器ID按照预设的拼接规则拼接成为唯一标识。本发明基于mac地址、时间戳及机器ID生成分布式系统唯一标识,通过将mac地址通过crc24方法进行转化、时间戳及机器ID按一定的规则进行拼装,生成计算机容易记存储的64位唯一标识,该解决基于数据库主键自增方法中无法满足高并发、数据库压力大的问题;同时也避免了基于uuid生成标识过长、查询效率慢的问题。
Description
技术领域
本发明涉及分布式系统技术领域,具体的说,是一种分布式系统中生成唯一标识的方法。
背景技术
随着互联网的发展,众多产品系统向着分布式服务发展,数据量在逐渐增长,此时就需要一个唯一ID来标识一条数据或者消息。目前市场存在多种根据不同场景、需求以及系统性能生成唯一标识的方法。传统的标识生成方法采用数据库自增ID机制实现,该方法对数据库过于依赖,当数据库出现故障时则无法生成ID,数据迁移或者多数据库版本支持的时需要处理,并且,当并发量高时,数据库压力过大;还有一种是使用redis生成ID,但是该方法需要在系统中引入redis组件,增加了系统的复杂度,在应用异常重启过程中,无法正常生成唯一标识。
发明内容
本发明的目的在于提供一种分布式系统中生成唯一标识的方法,用于解决现有技术生成唯一标识的方法过渡依赖数据库或者增加系统复杂度的问题。
本发明通过下述技术方案解决上述问题:
一种分布式系统中生成唯一标识的方法,包括:
步骤S100:将应用服务器mac地址转化为标识符;
步骤S200:获取应用服务器生成唯一标识的时间戳;
步骤S300:读取配置文件信息,获取机器ID;
步骤S400:将标识符、时间戳和机器ID按照预设的拼接规则拼接成为唯一标识。
所述步骤S100具体为:
步骤S110:获取应用服务器唯一标识的mac地址,根据php正则匹配规则替换掉mac地址中特殊字符,将处理后的十六进制mac地址转化为48位mac数字地址;
步骤S120:将48位mac数字地址前方通过0进行补齐,生成64位mac数字地址;
步骤S130:采用crc24方法将64位mac数字地址转化为32位初始标识符,取初始标识符的后24位作为标识符。
所述时间戳长度为32位,使存储的时间比较久远;所述机器ID长度为8位,能够适用的服务器台数为256台;所述拼接规则为:24位mac数字地址+32位时间戳+8位机器ID,最终拼接成的64位唯一标识码,在分布式数据库系统下,能够保证客户端请求在服务器数据库上所存储用户信息的唯一性,并且该方法生成速度较快,前期准备工作简单,同时,也降低了引入redis组件的人力、减少了读取数据库的压力。
本发明与现有技术相比,具有以下优点及有益效果:
本发明基于mac地址、时间戳及机器ID生成分布式系统唯一标识,通过将mac地址通过crc24方法进行转化、时间戳及机器ID按一定的规则进行拼装,生成计算机容易记存储的64位唯一标识,该解决基于数据库主键自增方法中无法满足高并发、数据库压力大的问题;同时也避免了基于uuid生成标识过长、查询效率慢的问题。
附图说明
图1为本发明的流程图;
图2为分布式系统拓扑结构图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例:
结合附图1和图2所示,一种分布式系统中生成唯一标识码的方法,包括:
一、系统运行后,加载服务器配置文件信息config.formal.sh,server1启动进程,在客户端1的请求通过master1到达应用服务器1后,应用服务器1调用php语言编写的获取服务器mac地址的方法,将获取的mac地址字符串进行正则匹配,去掉特殊符号,保留十六进制字符,即0-9及A-E字符;
将处理后的48位mac数字地址,在第一位数字前用0进行填充,把mac数字地址补齐为64位;将64位mac数字地址传入crc24自定义方法,经该法运行后,64位mac数字地址转化为32位整数,去除前8位,取该整数的后24位作为标识符;
二、利用php语言获取服务器1生成唯一标识的时间戳,时间戳存储为32位;
三、根据已读取的配置文件信息,获取server1的ID,用8位进行存储;
四、server1将所获取的字符串变量,按照mac数字地址、系统时间戳及应用服务器ID即机器ID进行拼接,生成应用服务器1的唯一标识字符串;
客户端1所发送请求经过应用服务器1生成唯一标识,将该唯一标识结合特定的业务逻辑存入server1的数据库,能够确保server1上所存储数据的唯一性,在客户端数据读取及后期数据库业务数据合并上非常方便。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (3)
1.一种分布式系统中生成唯一标识的方法,其特征在于,包括:
步骤S100:将应用服务器mac地址转化为标识符;
步骤S200:获取应用服务器生成唯一标识的时间戳;
步骤S300:读取配置文件信息,获取机器ID;
步骤S400:将标识符、时间戳和机器ID按照预设的拼接规则拼接成为唯一标识。
2.根据权利要求1所述的一种分布式系统中生成唯一标识的方法,其特征在于,所述步骤S100具体为:
步骤S110:获取应用服务器唯一标识的mac地址,根据php正则匹配规则替换掉mac地址中特殊字符,将处理后的十六进制mac地址转化为48位mac数字地址;
步骤S120:将48位mac数字地址前方通过0进行补齐,生成64位mac数字地址;
步骤S130:采用crc24方法将64位mac数字地址转化为32位初始标识符,取初始标识符的后24位作为标识符。
3.根据权利要求2所述的一种分布式系统中生成唯一标识的方法,其特征在于,所述时间戳长度为32位,所述机器ID长度为8位,所述拼接规则为:24位mac数字地址+32位时间戳+8位机器ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011278863.7A CN112383627A (zh) | 2020-11-16 | 2020-11-16 | 一种分布式系统中生成唯一标识的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011278863.7A CN112383627A (zh) | 2020-11-16 | 2020-11-16 | 一种分布式系统中生成唯一标识的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112383627A true CN112383627A (zh) | 2021-02-19 |
Family
ID=74584700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011278863.7A Pending CN112383627A (zh) | 2020-11-16 | 2020-11-16 | 一种分布式系统中生成唯一标识的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112383627A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114900497A (zh) * | 2022-05-09 | 2022-08-12 | 上海极豆科技有限公司 | 一种标识序号生成方法、装置、电子设备及存储介质 |
CN115510815A (zh) * | 2022-11-17 | 2022-12-23 | 山东未来网络研究院(紫金山实验室工业互联网创新应用基地) | 一种基于规则的标识生成方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647193A (zh) * | 2018-04-20 | 2018-10-12 | 河南中烟工业有限责任公司 | 一种可应用于分布式系统的唯一标识符生成方法及装置 |
CN110704395A (zh) * | 2019-09-18 | 2020-01-17 | 四川商通实业有限公司 | 一种用于分布式系统的唯一标识方法 |
CN111353275A (zh) * | 2018-12-21 | 2020-06-30 | 北京宸信征信有限公司 | 一种分布式系统唯一标识符及其生成方法 |
CN111901453A (zh) * | 2020-07-25 | 2020-11-06 | 广州海鹚网络科技有限公司 | 一种标识生成方法、装置、计算机设备和存储介质 |
-
2020
- 2020-11-16 CN CN202011278863.7A patent/CN112383627A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647193A (zh) * | 2018-04-20 | 2018-10-12 | 河南中烟工业有限责任公司 | 一种可应用于分布式系统的唯一标识符生成方法及装置 |
CN111353275A (zh) * | 2018-12-21 | 2020-06-30 | 北京宸信征信有限公司 | 一种分布式系统唯一标识符及其生成方法 |
CN110704395A (zh) * | 2019-09-18 | 2020-01-17 | 四川商通实业有限公司 | 一种用于分布式系统的唯一标识方法 |
CN111901453A (zh) * | 2020-07-25 | 2020-11-06 | 广州海鹚网络科技有限公司 | 一种标识生成方法、装置、计算机设备和存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114900497A (zh) * | 2022-05-09 | 2022-08-12 | 上海极豆科技有限公司 | 一种标识序号生成方法、装置、电子设备及存储介质 |
CN114900497B (zh) * | 2022-05-09 | 2023-09-26 | 上海极豆科技有限公司 | 一种标识序号生成方法、装置、电子设备及存储介质 |
CN115510815A (zh) * | 2022-11-17 | 2022-12-23 | 山东未来网络研究院(紫金山实验室工业互联网创新应用基地) | 一种基于规则的标识生成方法及装置 |
CN115510815B (zh) * | 2022-11-17 | 2023-03-28 | 山东未来网络研究院(紫金山实验室工业互联网创新应用基地) | 一种基于规则的标识生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959386B (zh) | 分布式全局唯一id生成方法、装置、设备和存储介质 | |
CN109840429B (zh) | 智能合约部署、调用方法和装置 | |
CN112383627A (zh) | 一种分布式系统中生成唯一标识的方法 | |
CN111353275B (zh) | 一种分布式系统唯一标识符及其生成方法 | |
CN105450712B (zh) | 一种数据传输方法及装置 | |
WO2022179353A1 (zh) | 域名解析方法、装置及计算机设备 | |
CN111930842B (zh) | 一种数据核对方法及装置 | |
CN113110944A (zh) | 信息查找方法、装置、服务器、可读存储介质及程序产品 | |
CN110334103B (zh) | 推荐服务的更新方法、提供装置、访问装置和推荐系统 | |
WO2014207735A1 (en) | Method and system for consolidating data retrieved from different sources | |
CN111901453B (zh) | 一种标识生成方法、装置、计算机设备和存储介质 | |
CN107193851B (zh) | 数据查询方法及装置 | |
CN109725927B (zh) | 代码管理系统的同步方法及装置、存储介质及终端 | |
CN113204683B (zh) | 信息重构方法和装置、存储介质及电子设备 | |
CN111913956A (zh) | 统一业务编码方法及装置 | |
CN114528108A (zh) | 一种序列号生成方法、装置、服务器和存储介质 | |
CN112329393A (zh) | 一种短码id的生成方法、设备、存储介质 | |
CN113612869A (zh) | 一种短网址生成方法、终端及存储介质 | |
CN108491448B (zh) | 一种数据推送的方法和装置 | |
CN114844658A (zh) | 一种确定归属地源地址方法、装置及存储介质 | |
CN111538651A (zh) | 接口测试方法、装置、服务器及存储介质 | |
CN111930720A (zh) | 数据倾斜的处理方法、系统、电子设备和介质 | |
CN112579566B (zh) | 分布式id的生成方法及装置 | |
CN110888863A (zh) | 一种状态字段优化方法、装置、电子设备及存储介质 | |
CN113050977B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210219 |
|
RJ01 | Rejection of invention patent application after publication |