分布式ID的需求
在分布式系統(tǒng)中。ID有如下需求
全局唯一性,不能出現(xiàn)重復的id號
信息安全:防止惡意用戶規(guī)矩id的規(guī)則來獲取數(shù)據(jù)
數(shù)據(jù)遞增:保證我的下一ID一定大于上一個ID
UUID通用唯一識別碼,16個字節(jié)128位的長數(shù)字
組成部分:當前時間和時間序列+全局唯一性網(wǎng)卡地址
優(yōu)點:代碼實現(xiàn)簡單,不占用寬帶,數(shù)據(jù)遷移不受影響
缺點:無序,無法保證趨勢遞增,查詢慢,不可讀
國外的twitter分布式下ID生成算法
1bit+41bit+10bit+10bit=62bit
高位隨機+毫秒數(shù)+機器碼(數(shù)據(jù)中心+機器id)+10的流水號
優(yōu)點:代碼實現(xiàn)簡單,不占用寬帶,數(shù)據(jù)遷移不受影響,低位趨勢遞增
缺點:多臺服務(wù)器時間一定要一樣,無序無法保證趨勢遞增要求
優(yōu)點:代碼實現(xiàn)方便,性能不錯,數(shù)字排序,可讀性很強
缺點:受限數(shù)據(jù)庫,擴展麻煩,插入數(shù)據(jù)庫才能拿到ID,單點故障問題
主從同步的時候:電商下單–>支付 intsert master db select 數(shù)據(jù) 因為數(shù)據(jù)庫同步延遲導致查不到這個數(shù)據(jù),加cahe不是最好的解決方式,數(shù)據(jù)要求比較嚴謹?shù)脑挷閙aster主庫.
年份+當前這天屬于這一年的第多少天+小時+redis自增
2+3+2+5=12位
數(shù)據(jù)多了可以設(shè)置一個失效時間重新生成,
優(yōu)點:不依賴數(shù)據(jù),靈活方便,性能優(yōu)于數(shù)據(jù)庫,沒有單故障,高可用
缺點:需要占用網(wǎng)絡(luò)資源,性能要比本地生成慢,需要增加插件
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/71185.html
摘要:幾乎所有的系統(tǒng)都存在生成唯一的需求,如用戶賬單等,由于系統(tǒng)通常是分布式架構(gòu),因而需要有合適的分布式生成方案。優(yōu)勢和數(shù)據(jù)庫自增方案類似缺點同樣仍然有性能上限,依賴數(shù)據(jù)庫的可用性。使用時,可以使用具體的場景選擇合適的方案。幾乎所有的系統(tǒng)都存在生成唯一ID的需求,如用戶ID、賬單ID等,由于系統(tǒng)通常是分布式架構(gòu),因而需要有合適的分布式ID生成方案。常見的分布式唯一ID方法有(歡迎補充):時間戳數(shù)據(jù)...
摘要:序本文主要來聊聊分布式的生成方案。分布式的生成,以為代表的,系列算法采用的就是劃分命名空間并行生成的思路。 序 本文主要來聊聊分布式id的生成方案。 目標 業(yè)務(wù)系統(tǒng)需要什么樣的ID生成器中提出了幾點目標: 唯一性 時間相關(guān) 粗略有序 可反解 可制造 主要思路 對于每個標識,都需要有一個命名空間(namespace),來保證其相對唯一性。分布式的ID生成,以Twitter Snowf...
摘要:為什么需要發(fā)號器在分布式系統(tǒng)中,經(jīng)常需要對大量的數(shù)據(jù)消息請求等進行唯一標識,例如對于分布式系統(tǒng),服務(wù)間相互調(diào)用需要唯一標識,調(diào)用鏈路分析,日志追蹤的時候需要使用這個唯一標識。 原文鏈接:何曉東 博客 文章起源于 康神交流群的 panda大佬和boss li關(guān)于發(fā)號器的一些交流,特此感謝讓我們學到了新知識。 為什么需要發(fā)號器 在分布式系統(tǒng)中,經(jīng)常需要對大量的數(shù)據(jù)、消息、http 請求等進...
摘要:原文地址唯一的生成并不是一件小事想說愛它也并不是像簡單來一個這樣一件容易的事為什么要唯一數(shù)據(jù)庫的自增在分庫的時候會是一場災難假設(shè)分兩個庫因為每個庫都會開始從開始自增屆時系統(tǒng)中將會出現(xiàn)兩個為的用戶自增會暴露用戶量或者其他業(yè)務(wù)量自增會讓有心者 [原文地址:https://blog.ti-node.com/blog...] 唯一ID的生成并不是一件小事 , 想說愛它 , 也并不是像簡單來一個...
摘要:同時除了對號碼自身的要求,業(yè)務(wù)還對號生成系統(tǒng)的可用性要求極高,想象一下,如果生成系統(tǒng)癱瘓,整個美團點評支付優(yōu)惠券發(fā)券騎手派單等關(guān)鍵動作都無法執(zhí)行,這就會帶來一場災難。 分布式id主要用到哪些地方 在復雜分布式系統(tǒng)中,往往需要對大量的數(shù)據(jù)和消息進行唯一標識。如在美團點評的金融、支付、餐飲、酒店、貓眼電影等產(chǎn)品的系統(tǒng)中,數(shù)據(jù)日漸增長,對數(shù)據(jù)分庫分表后需要有一個唯一ID來標識一條數(shù)據(jù)或消息,...
閱讀 2393·2021-11-22 14:56
閱讀 10885·2021-09-08 10:45
閱讀 2075·2019-08-30 13:54
閱讀 2923·2019-08-29 16:54
閱讀 2091·2019-08-29 14:20
閱讀 1845·2019-08-29 12:25
閱讀 1911·2019-08-29 12:17
閱讀 1111·2019-08-23 18:29