UUID的用法

UUID含義是通用唯一識別碼?(Universally Unique Identifier),這是一個(gè)軟件建構(gòu)的標(biāo)準(zhǔn).

UUID?的目的,是讓分布式系統(tǒng)中的所有元素,都能有唯一的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定。如此一來,每個(gè)人都可以建立不與其它人沖突的?UUID。在這樣的情況下,就不需考慮數(shù)據(jù)庫建立時(shí)的名稱重復(fù)問題。目前最廣泛應(yīng)用的?UUID,即是微軟的?Microsoft's Globally Unique Identifiers (GUIDs),而其他重要的應(yīng)用,則有?Linux ext2/ext3?檔案系統(tǒng)、GNOME、KDE、Mac OS X?等等。

UUID是指在一臺機(jī)器上生成的數(shù)字,它保證對在同一時(shí)空中的所有機(jī)器都是唯一的。通常平臺會提供生成的API。按照開放軟件基金會(OSF)制定的標(biāo)準(zhǔn)計(jì)算,用到了以太網(wǎng)卡地址、納秒級時(shí)間、芯片ID碼和許多可能的數(shù)字

UUID由以下幾部分的組合:

(1)當(dāng)前日期和時(shí)間,UUID的第一個(gè)部分與時(shí)間有關(guān),如果你在生成一個(gè)UUID之后,過幾秒又生成一個(gè)UUID,則第一個(gè)部分不同,其余相同。

(2)時(shí)鐘序列。

(3)全局唯一的IEEE機(jī)器識別號,如果有網(wǎng)卡,從網(wǎng)卡MAC地址獲得,沒有網(wǎng)卡以其他方式獲得。

UUID的唯一缺陷在于生成的結(jié)果串會比較長。關(guān)于UUID這個(gè)標(biāo)準(zhǔn)使用最普遍的是微軟的GUID(Globals Unique Identifiers)。使用UUID的好處在分布式的軟件系統(tǒng)中,能保證每個(gè)節(jié)點(diǎn)所生成的標(biāo)識都不會重復(fù),并且隨著WEB服務(wù)等整合技術(shù)的發(fā)展,UUID的優(yōu)勢將更加明顯。

GUID是一個(gè)128位長的數(shù)字,一般用16進(jìn)制表示。算法的核心思想是結(jié)合機(jī)器的網(wǎng)卡、當(dāng)?shù)貢r(shí)間、一個(gè)隨即數(shù)來生成GUID。從理論上講,如果一臺機(jī)器每秒產(chǎn)生10000000個(gè)GUID,則可以保證(概率意義上)3240年不重復(fù)。

UUID是jdk1.5中新增的一個(gè)類,在java.util下,用它可以產(chǎn)生一個(gè)號稱全球唯一的ID.?UUID是由一個(gè)十六位的數(shù)字組成,表現(xiàn)出來的形式例如

550E8400-E29B-11D4-A716-446655440000

下面是java代碼生成uuid的例子(這個(gè)就比時(shí)間戳或者是隨機(jī)數(shù)更加專業(yè)和靠譜了)

import java.util.UUID;

? ?public static String getUUID() {

? ? ? ? ?UUID uuid =UUID.randomUUID();

? ? ? ? ? String str = uuid.toString();

? ? ? ? ? ?//

? ? ? ? ? ?去掉"-"符號

? ? ? ? ? ? String temp = str.substring(0, 8) +str.substring(9, 13) + str.substring(14, 18) + str.substring(19, 23) +str.substring(24);

? ? ? ? ? ? returnstr+","+temp;

? ?}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • JAVA UUID 生成 GUID是一個(gè)128位長的數(shù)字,一般用16進(jìn)制表示。算法的核心思想是結(jié)合機(jī)器的網(wǎng)卡、當(dāng)?shù)?..
    藝龍閱讀 13,035評論 1 3
  • 前言 最先接觸編程的知識是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識,c語言,java語言,單片機(jī)的匯編語言等;大學(xué)畢...
    oceanfive閱讀 3,376評論 0 7
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評論 19 139
  • 《外化技術(shù)》 。感恩劉老師的傾囊相授,周四晚上網(wǎng)絡(luò)中八的第十一次課程學(xué)習(xí)的是外化技術(shù)。外化技術(shù)是用敘事的瓶裝焦點(diǎn)的...
    像花兒一樣綻放_fb06閱讀 671評論 0 1
  • 今天我自己做的公眾號粉絲達(dá)到了100人,現(xiàn)在這個(gè)自媒體時(shí)代,許多年輕人隨便申請個(gè)公眾號做一做就能做出閱讀量10w+...
    79375ef88dcf閱讀 1,703評論 1 1

友情鏈接更多精彩內(nèi)容