今天就跟大家聊聊有關(guān)五種常見的分布式ID分別是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、蕪湖網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為蕪湖等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。相信每個(gè)人在互聯(lián)網(wǎng)的業(yè)務(wù)系統(tǒng)中,每天都能接觸到各種各樣的ID,如在支付系統(tǒng)中就會(huì)有支付ID、退款I(lǐng)D等。今天,小編就來(lái)盤點(diǎn)五種分布式ID。
一、UUID
UUID (Universally Unique Identifier) 的標(biāo)準(zhǔn)型式包含 32 個(gè) 16 進(jìn)制數(shù)字,以連字號(hào)分為五段,形式為 8-4-4-4-12 的 36 個(gè)字符,示例:550e8400-e29b-41d4-a716-446655440000,到目前為止業(yè)界一共有 5 種方式生成 UUID。
UUID 的優(yōu)點(diǎn):性能非常高:本地生成,沒有網(wǎng)絡(luò)消耗。
UUID 的缺點(diǎn):
不易于存儲(chǔ):UUID 太長(zhǎng),16 字節(jié) 128 位,通常以 36 長(zhǎng)度的字符串表示,很多場(chǎng)景不適用。
信息不安全:基于 MAC 地址生成 UUID 的算法可能會(huì)造成 MAC 地址泄露,這個(gè)漏洞曾被用于尋找梅麗莎病毒的制作者位置。
ID 作為主鍵時(shí)在特定的環(huán)境會(huì)存在一些問(wèn)題,比如做 DB 主鍵的場(chǎng)景下,UUID 就非常不適用。MySQL 官方有明確的建議主鍵要盡量越短越好,36 個(gè)字符長(zhǎng)度的 UUID 不符合要求;UUID 還對(duì) MySQL 索引不利,如果作為數(shù)據(jù)庫(kù)主鍵,在 InnoDB 引擎下,UUID 的無(wú)序性可能會(huì)引起數(shù)據(jù)位置頻繁變動(dòng),嚴(yán)重影響性能。
二、snowflake
snowflake 我就不在介紹了,我直接說(shuō)它的優(yōu)點(diǎn):
毫秒數(shù)在高位,自增序列在低位,整個(gè)ID都是趨勢(shì)遞增的。
不依賴數(shù)據(jù)庫(kù)等第三方系統(tǒng),以服務(wù)的方式部署,穩(wěn)定性更高,生成ID的性能也是非常高的。
可以根據(jù)自身業(yè)務(wù)特性分配bit位,非常靈活。
缺點(diǎn):
強(qiáng)依賴機(jī)器時(shí)鐘,如果機(jī)器上時(shí)鐘回?fù)?,?huì)導(dǎo)致發(fā)號(hào)重復(fù)或者服務(wù)會(huì)處于不可用狀態(tài)。
MongDB 的 ObjectID 可以算作是和snowflake類似方法,通過(guò)“時(shí)間+機(jī)器碼+pid+inc”共12個(gè)字節(jié),通過(guò)4+3+2+3的方式最終標(biāo)識(shí)成一個(gè)24長(zhǎng)度的十六進(jìn)制字符。
三、美團(tuán)開源的Leaf
支持多種不同模式的生成策略
號(hào)段模式:該模式需要建 DB 表, 需要有專門的服務(wù)來(lái)提供獲取 id 的接口, 存在網(wǎng)絡(luò)延遲
Snowflake 模式:為了追求更高的性能,需要通過(guò) RPC Server 來(lái)部署 Leaf 服務(wù),那僅需要引入 leaf-core 的包,把生成 ID 的 API 封裝到指定的 RPC 框架中即可.
缺點(diǎn),可能就是相對(duì)來(lái)說(shuō)比較復(fù)雜。
四、sharding-jdbc
sharding-jdbc 是一個(gè)開源的主鍵生成組件。它的特點(diǎn)是簡(jiǎn)單易用,可以指定 workerId 或者不指定, 直接通過(guò) jar 的方式引入即可??此拿志椭溃枰?DB 支持。
五、uid-generator
uid-generator 是百度開源的一個(gè)分布式 ID生成器。需要建 DB 表, 需要有專門的服務(wù)來(lái)提供獲取 id 的接口, 存在網(wǎng)絡(luò)延遲。
看完上述內(nèi)容,你們對(duì)五種常見的分布式ID分別是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)頁(yè)名稱:五種常見的分布式ID分別是什么-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://www.rwnh.cn/article48/cceoep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站設(shè)計(jì)公司、App設(shè)計(jì)、自適應(yīng)網(wǎng)站、電子商務(wù)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容