91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

從 UUID 到 UUIDv7:唯一標(biāo)識符的演進(jìn)

admin
2025年2月24日 23:18 本文熱度 754

本文主要介紹 UUID 從 v1 到 v8 的演進(jìn)歷程,特別詳細(xì)解讀了最新的 UUIDv7 和 UUIDv8,介紹了 UUID 在分布式系統(tǒng)和數(shù)據(jù)庫索引中的應(yīng)用和優(yōu)勢。原文:From UUID to UUIDv7 and Beyond: The Evolution of Unique Identifiers[1]

0190dffef1ad726bd83fab761dd389c6

你在數(shù)據(jù)庫或系統(tǒng)中見過這樣一串?dāng)?shù)字嗎?它很可能就是 UUID。這并不是一串隨機(jī)字符,作為 RFC 標(biāo)準(zhǔn),UUID 已經(jīng)存在了幾十年,并經(jīng)歷了 7 個(gè)版本的演變。今天,我們就來了解一下 UUID

什么是 UUID?

UUID(Universally Unique Identifier,通用唯一標(biāo)識符) 是一個(gè) 128 位值,廣泛用于分布式系統(tǒng)中的唯一標(biāo)識。其格式為 32 個(gè)十六進(jìn)制數(shù)字,用連字符分隔,通常表示為

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

這里,M 表示 UUID 版本,N 表示變體。

UUID 由開放軟件基金會(Open Software Foundation)定義,并標(biāo)準(zhǔn)化為 RFC 4122[2]。UUID 無需中心化協(xié)調(diào)即可確保唯一性,常用于數(shù)據(jù)庫、文件系統(tǒng)和會話標(biāo)識符等。2024 年,RFC 9562[3] 推出了另外三個(gè)版本 -- 6、7 和 8 -- 以解決早期版本的局限性。

UUID 版本簡史

UUID 不斷發(fā)展,以滿足對時(shí)間敏感的應(yīng)用需求。最常用的版本包括:

  • UUIDv1:利用時(shí)間和節(jié)點(diǎn)信息,包含時(shí)間戳和 MAC 地址。雖然能有效保證唯一性,但由于 MAC 地址會暴露敏感信息,因此會帶來隱私問題。
  • UUIDv4:隨機(jī)生成,提供了簡單性和隱私性,但代價(jià)是潛在的(盡管極不可能發(fā)生)碰撞。該版本被廣泛應(yīng)用于順序排列并不重要的場合。
  • UUIDv3 和 UUIDv5:利用哈希算法(v3 使用 MD5,v5 使用 SHA-1)從命名空間標(biāo)識符和名稱推導(dǎo)出 UUID,確保相同輸入的結(jié)果具有確定性。

RFC 9562 中引入的更新版本帶來了重大改進(jìn):

  • UUIDv6:v1 的重組版本,具有更強(qiáng)的私密性,并針對時(shí)間順序排序進(jìn)行了優(yōu)化。
  • UUIDv7:旨在提供基于時(shí)間的順序排序,是數(shù)據(jù)庫索引和分布式系統(tǒng)的理想選擇。
  • UUIDv8:允許自定義應(yīng)用特定元數(shù)據(jù)字段,提供無與倫比的靈活性。
了解 UUIDv7:現(xiàn)代改進(jìn)

UUIDv7 解決了早期版本的主要缺陷,尤其是在數(shù)據(jù)庫索引和分布式系統(tǒng)方面。通過使用有時(shí)間順序的結(jié)構(gòu),可以確保:

  • 高效索引:基于時(shí)間的順序排列減少了數(shù)據(jù)庫索引中的碎片,從而提高了查詢性能。
  • 高可擴(kuò)展性:適用于需要唯一、有序標(biāo)識符的分布式環(huán)境。
  • 隱私性:避免包含 MAC 地址等敏感信息。

例如,生成 UUIDv7 需要將時(shí)間戳編碼到標(biāo)識符中,這樣即使在分布式系統(tǒng)中也能確保有序。谷歌的 UUID 庫[4]等工具支持用各種編程語言生成 UUIDv7。

package main  
  
import (  
    "fmt"  
    "github.com/google/uuid"
)  
  
func main() {  
    id, _ := uuid.NewV7()  
    fmt.Println("Generated UUIDv7:", id)  
}

有關(guān) UUIDv7 規(guī)范的更多信息,請參見 RFC 9562 第 5 節(jié)[5]

UUIDv8:未來的靈活性(尚未正式發(fā)布)

UUIDv8 引入了一項(xiàng)突破性功能:針對特定應(yīng)用需求的自定義位。該版本允許在 UUID 中直接嵌入元數(shù)據(jù),使其具有很強(qiáng)的適應(yīng)性:

  • 物聯(lián)網(wǎng)設(shè)備:嵌入設(shè)備特定信息
  • 跨系統(tǒng)數(shù)據(jù)傳輸:包含上下文元數(shù)據(jù),便于跟蹤。
  • 自定義應(yīng)用:根據(jù)特定領(lǐng)域需求定制 UUID。

UUIDv8 的靈活性需要權(quán)衡利弊,如確保自定義字段在應(yīng)用上下文中保持唯一性。隨著采用率的提高,很可能會出現(xiàn)最佳實(shí)踐和庫來規(guī)范這些實(shí)施。

有關(guān) UUIDv8 的詳細(xì)信息,請參閱 RFC 9562 第 6 節(jié)[6]

比較 UUID 版本

版本
構(gòu)造方式
主要功能
用例
v1
時(shí)間 + MAC地址
高唯一性, 隱私問題
傳統(tǒng)系統(tǒng), 內(nèi)部工具
v4
隨機(jī)
簡單, 高隱私性
Web應(yīng)用, 通用功能
v6
基于時(shí)間(重構(gòu)的)
有序, 隱私增強(qiáng)
現(xiàn)代數(shù)據(jù)庫
v7
時(shí)間有序(RFC 9562)
索引優(yōu)化
分布式系統(tǒng), 日志
v8
自定義字段
高靈活性
IoT, 特定應(yīng)用

超越 UUID:替代方案與靈感

UUIDv7 和 UUIDv8 的開發(fā)參考了其他 ID 生成方法,如:

  • ULID:將基于時(shí)間戳的排序與隨機(jī)性相結(jié)合,確保單調(diào)性。
  • Snowflake:由 Twitter 提出,包含時(shí)間戳、機(jī)器 ID 和序列號。
  • KSUID:為分布式系統(tǒng)優(yōu)化的 K 排序唯一標(biāo)識符。

雖然這些替代方案在特定情況下很有效,但 UUID 為大部分應(yīng)用提供了標(biāo)準(zhǔn)化、跨平臺的解決方案。

結(jié)論和建議

UUID 的發(fā)展反映了分布式系統(tǒng)日益增長的復(fù)雜性,以及對高效、安全和靈活的唯一標(biāo)識符的需求。隨著 UUIDv7 和 UUIDv8 等新版本的普及,開發(fā)人員應(yīng)該:

  • 選擇正確的版本:使用 UUIDv7 滿足有時(shí)間順序的需求,使用 UUIDv8 滿足自定義元數(shù)據(jù)的需求。
  • 利用庫:利用現(xiàn)有的庫,確保符合 RFC 規(guī)范。
  • 隨時(shí)了解信息:監(jiān)控 UUID 標(biāo)準(zhǔn)和庫的更新,利用新功能。

通過了解和使用合適的 UUID 版本,從而確保系統(tǒng)的可擴(kuò)展性、性能和安全性。


你好,我是俞凡,在Motorola做過研發(fā),現(xiàn)在在Mavenir做技術(shù)工作,對通信、網(wǎng)絡(luò)、后端架構(gòu)、云原生、DevOps、CICD、區(qū)塊鏈、AI等技術(shù)始終保持著濃厚的興趣,平時(shí)喜歡閱讀、思考,相信持續(xù)學(xué)習(xí)、終身成長,歡迎一起交流學(xué)習(xí)。為了方便大家以后能第一時(shí)間看到文章,請朋友們關(guān)注公眾號"DeepNoMind",并設(shè)個(gè)星標(biāo)吧,如果能一鍵三連(轉(zhuǎn)發(fā)、點(diǎn)贊、在看),則能給我?guī)砀嗟闹С趾蛣恿Γ?lì)我持續(xù)寫下去,和大家共同成長進(jìn)步!

參考資料
[1] 

From UUID to UUIDv7 and Beyond: The Evolution of Unique Identifiers: https://huizhou92.com/p/from-uuid-to-uuidv7-and-beyond-the-evolution-of-unique-identifiers/

[2] 

RFC 4122: https://datatracker.ietf.org/doc/html/rfc4122

[3] 

RFC 9562: https://datatracker.ietf.org/doc/html/rfc9562

[4] 

谷歌的 UUID 庫: https://github.com/google/uuid

[5] 

RFC 9562 第 5 節(jié): https://datatracker.ietf.org/doc/html/rfc9562#section-5

[6] 

RFC 9562 第 6 節(jié): https://datatracker.ietf.org/doc/html/rfc9562#section-6

?

閱讀原文:原文鏈接


該文章在 2025/2/25 10:42:03 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 91九色国产| 国产高清一 | 亚洲无码在线免费 | 欧美亚日韩一二三四 | 成人日本在线观看 | 国产专区视频 | 国产欧美自拍日韩 | 91丨九色丨国产丨 | 中文字幕视频二区 | 人与动欧交视频 | 精品福利枧频网站 | 国产真实九| 国产另类日韩制 | 国产污视频在线观看 | 欧美三极婬片网站 | 日韩真做片在线观看 | 国产视频短| 午夜视频手 | 日韩精品中 | 欧美日韩激情视频 | 欧美日韩伦理电影 | 91一区二区视频 | 国产普通话对白 | 91免费精品| 国内偷拍视频网页 | 人成视频在线视频 | 福利所第一导航福利 | 午夜亚洲一区 | 日韩精品电影一区 | 乱老熟300部视频 | 日韩成人免费电影色 | 成人推特| 欧美日韩在线一品道 | 国产巨作在线无遮 | 97在线看| 三级影视 | 午夜日韩高清 | 国产在线你懂 | 国产精选自拍第1页 | 日韩伦理电影大全 | 国产精品十七区 |