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