分布式系統全域性id生成策略

2021-08-13 10:43:00 字數 495 閱讀 6872

1、不能有單點故障;

2、全域性id生成服務不能成為整個系統效能瓶頸;

3、全域性id要和shardingid有對映關係,根據全域性主鍵id能算出資料在哪個分片;

4、不能太長,否則,作為主鍵建立索引查詢效率低;

flickr開發團隊在2023年撰文介紹了flickr使用的一種主鍵生成策略,flickr這一方案的整體思想是:建立兩台以上的主鍵id生成伺服器,每個伺服器都有一張記錄各表當前id的sequence表,sequence表中id增長的步長是伺服器的數量,起始值依次錯開,這樣相當於把id的生成雜湊到了每個伺服器節點上。例如:如果我們設定兩台資料庫id生成伺服器,那麼設定一台的sequence表的id起始值為1,每次增長步長為2,另一台的sequence表的id起始值為2,每次增長步長為2,奇數的id都將從第一台伺服器上生成,偶數的id都從第二台伺服器上生成,這樣就將生成id的壓力均勻分散到兩台伺服器上,同時配合應用程式的控制,當乙個伺服器失效後,系統能自動切換到另乙個伺服器上獲取id,從而保證了系統的容錯。

分布式系統全域性唯一ID生成

在複雜分布式系統中,往往需要對大量的資料和訊息進行唯一標識。如在金融 電商 支付 等產品的系統中,資料日漸增長,對資料分庫分表後需要有乙個唯一id來標識一條資料或訊息,資料庫的自增id顯然不能滿足需求,此時乙個能夠生成全域性唯一id的系統是非常必要的。同時除了對id號碼自身的要求,業務還對id號生成...

分布式全域性ID生成方案

1 背景 分布式架構下,唯一序列號生成是我們在設計乙個系統,尤其是資料庫使用分庫分表的時候常常會遇見的問題。當分成若干sharding表後,如何能夠快速拿到乙個唯一序列號,是經常遇到的問題。在網際網路的業務系統中,涉及到各種各樣的id,如在支付系統中就會有支付id 退款id等。那一般生成id都有哪些...

分布式id生成系統 總結

簡單易用,但是做資料庫分片的時候,uuid不太適合作為分片鍵 詳見leaf 美團點評分布式id生成系統 效能非常高,缺點是如果時間回撥或者各個例項節點時間不一致,容易出錯 詳見leaf 美團點評分布式id生成系統 支援多種不同模式的生成策略 號段模式 該模式需要建db表,需要有專門的服務來提供獲取i...