成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

分布式ID系列(1)——為什么需要分布式ID以及分布式ID的業(yè)務(wù)需求

Snailclimb / 3647人閱讀

摘要:同時(shí)除了對號碼自身的要求,業(yè)務(wù)還對號生成系統(tǒng)的可用性要求極高,想象一下,如果生成系統(tǒng)癱瘓,整個(gè)美團(tuán)點(diǎn)評支付優(yōu)惠券發(fā)券騎手派單等關(guān)鍵動(dòng)作都無法執(zhí)行,這就會(huì)帶來一場災(zāi)難。

分布式id主要用到哪些地方

在復(fù)雜分布式系統(tǒng)中,往往需要對大量的數(shù)據(jù)和消息進(jìn)行唯一標(biāo)識。如在美團(tuán)點(diǎn)評的金融、支付、餐飲、酒店、貓眼電影等產(chǎn)品的系統(tǒng)中,數(shù)據(jù)日漸增長,對數(shù)據(jù)分庫分表后需要有一個(gè)唯一ID來標(biāo)識一條數(shù)據(jù)或消息,數(shù)據(jù)庫的自增ID顯然不能滿足需求;特別一點(diǎn)的如訂單、騎手、優(yōu)惠券也都需要有唯一ID做標(biāo)識。此時(shí)一個(gè)能夠生成全局唯一ID的系統(tǒng)是非常必要的。

分布式id創(chuàng)建的業(yè)務(wù)需求

要求如下所示

1.全局唯一性:不能出現(xiàn)重復(fù)的ID號,既然是唯一標(biāo)識,這是最基本的要求。
2.趨勢遞增:在MySQL InnoDB引擎中使用的是聚集索引,由于多數(shù)RDBMS使用B-tree的數(shù)據(jù)結(jié)構(gòu)來存儲索引數(shù)據(jù),在主鍵的選擇上面我們應(yīng)該盡量使用有序的主鍵保證寫入性能。
3.單調(diào)遞增:保證下一個(gè)ID一定大于上一個(gè)ID,例如事務(wù)版本號、IM增量消息、排序等特殊需求。
4.信息安全:如果ID是連續(xù)的,惡意用戶的扒取工作就非常容易做了,直接按照順序下載指定URL即可;如果是訂單號就更危險(xiǎn)了,競對可以直接知道我們一天的單量。所以在一些應(yīng)用場景下,會(huì)需要ID無規(guī)則、不規(guī)則。
5.分布式id里面最好包含時(shí)間戳,這樣就能夠在開發(fā)中快速了解這個(gè)分布式id的生成時(shí)間

上述123對應(yīng)三類不同的場景,3和4需求還是互斥的,所以無法使用同一個(gè)方案滿足。

同時(shí)除了對ID號碼自身的要求,業(yè)務(wù)還對ID號生成系統(tǒng)的可用性要求極高,想象一下,如果ID生成系統(tǒng)癱瘓,整個(gè)美團(tuán)點(diǎn)評支付、優(yōu)惠券發(fā)券、騎手派單等關(guān)鍵動(dòng)作都無法執(zhí)行,這就會(huì)帶來一場災(zāi)難。由此我總結(jié)下一個(gè)ID生成系統(tǒng)應(yīng)該做到如下幾點(diǎn):

可用性高:就是我用戶發(fā)了一個(gè)獲取分布式id的請求,那么你服務(wù)器就要保證99.999%的情況下給我創(chuàng)建一個(gè)分布式id
延遲低:就是我用戶給你一個(gè)獲取分布式id的請求,那么你服務(wù)器給我創(chuàng)建一個(gè)分布式id的速度就要快
高QPS:這個(gè)就是用戶一下子有10萬個(gè)創(chuàng)建分布式id請求同時(shí)過去了,那么你服務(wù)器要頂?shù)淖?,你要一下子給我成功創(chuàng)建10萬個(gè)分布式id

原文鏈接

其他分布式ID系列快捷鍵:
分布式ID系列(1)——為什么需要分布式ID以及分布式ID的業(yè)務(wù)需求
分布式ID系列(2)——UUID適合做分布式ID嗎
分布式ID系列(3)——數(shù)據(jù)庫自增ID機(jī)制適合做分布式ID嗎
分布式ID系列(4)——Redis集群實(shí)現(xiàn)的分布式ID適合做分布式ID嗎

大佬網(wǎng)址
https://www.itqiankun.com/art...
https://blog.csdn.net/hengyun...
https://tech.meituan.com/2017...
https://segmentfault.com/a/11...
https://www.jianshu.com/p/9d7...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76113.html

相關(guān)文章

  • 布式ID系列(2)——UUID適合做布式ID

    摘要:用戶指定一個(gè)名字空間和一個(gè)字符串,通過散列,生成。字符串本身需要是唯一的。。雖然是基于隨機(jī)數(shù),但是重復(fù)的可能性可以忽略不計(jì),因此該版本也是被經(jīng)常使用的版本。。當(dāng)前正在使用的。。 UUID的生成策略: UUID的方式能生成一串唯一隨機(jī)32位長度數(shù)據(jù),它是無序的一串?dāng)?shù)據(jù),按照開放軟件基金會(huì)(OSF)制定的標(biāo)準(zhǔn)計(jì)算,UUID的生成用到了以太網(wǎng)卡地址、納秒級時(shí)間、芯片ID碼和許多可能的數(shù)字。U...

    wayneli 評論0 收藏0
  • 布式ID系列(3)——數(shù)據(jù)庫自增ID機(jī)制適合做布式ID

    摘要:數(shù)據(jù)庫自增機(jī)制原理介紹在分布式里面,數(shù)據(jù)庫的自增機(jī)制的主要原理是數(shù)據(jù)庫自增和數(shù)據(jù)庫的函數(shù)實(shí)現(xiàn)的。 數(shù)據(jù)庫自增ID機(jī)制原理介紹 在分布式里面,數(shù)據(jù)庫的自增ID機(jī)制的主要原理是:數(shù)據(jù)庫自增ID和mysql數(shù)據(jù)庫的replace_into()函數(shù)實(shí)現(xiàn)的。這里的replace數(shù)據(jù)庫自增ID和mysql數(shù)據(jù)庫的replace_into()函數(shù)實(shí)現(xiàn)的。這里的replace into跟insert功...

    Stardustsky 評論0 收藏0
  • 解決方案:如何防止數(shù)據(jù)重復(fù)插入?

    摘要:問題是,重復(fù)請求導(dǎo)致的數(shù)據(jù)重復(fù)插入。這問題造成的后果很明顯數(shù)據(jù)冗余,可能不單單多一條有些業(yè)務(wù)需求不能有多余數(shù)據(jù),造成服務(wù)問題問題如圖所示解決方式如何將同請求,不執(zhí)行插入,而是讀取前一個(gè)請求插入的數(shù)據(jù)并返回。那么使用分布式鎖的解決方案。 摘要: 原創(chuàng)出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關(guān)注和轉(zhuǎn)載,保留摘要,謝謝!目錄 為啥要解...

    wenshi11019 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<