3.【每日分享】談談常用的分布式ID的設(shè)計

在分布式開發(fā)中,唯一主鍵的設(shè)計非常重要,我們今天來看看分布式ID的常用設(shè)計

首先我們先明確一下分布式ID的定義
1.全局唯一,不是單點系統(tǒng)的唯一,而是分布式系統(tǒng)的唯一
2.有序性,通常需要保證生成的ID是有序遞增的,比如在數(shù)據(jù)庫中,遞增有助于做分區(qū),提高查詢效率

典型的方案有很多
-基于數(shù)據(jù)庫自增序列的實現(xiàn),這種方式優(yōu)缺點都非常明顯,好處是簡單好用,但是在擴展性和可靠性方面存在局限性
-基于Twitter早期開源的Snowflake的實現(xiàn)以及相關(guān)改動方案,這是目前應用相對廣泛的一種方式,整體長度通常是64位(1位標示位+41位時間戳+10位WorkerID+12位序列),通常使用java 的long類型存儲

另外Redis、Zookeeper、MongoDB等中間件也都有各種唯一ID解決方案。

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

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

  • 前言 在互聯(lián)網(wǎng)的業(yè)務系統(tǒng)中,涉及到各種各樣的ID,如在支付系統(tǒng)中就會有支付ID、退款I(lǐng)D等。那一般生成ID都有哪些...
    Java大生閱讀 3,350評論 0 4
  • 談談常用的分布式 ID 的設(shè)計方案?Snowflake 是否受冬令時切換影響? 典型回答 首先,我們需要明確通常的...
    逆流_2659閱讀 14,001評論 0 1
  • 文章轉(zhuǎn)載自公眾號“達達京東到家技術(shù)”。 背景 在分布式系統(tǒng)中,經(jīng)常需要對大量的數(shù)據(jù)、消息、http 請求等進行唯一...
    淡淡的橙子閱讀 6,581評論 1 41
  • 我想我是一棵樹 晴朗的天空下 我昂首挺立 然而風吹過 我卻低下了頭 原來我是棵草 一陣風一滴雨 都會讓我低頭 我想...
    花開落雨時閱讀 426評論 1 1

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