国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分布式id的概述與實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了分布式id的概述與實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


前言

隨著業(yè)務(wù)的增長(zhǎng),數(shù)據(jù)表可能要占用很大的物理存儲(chǔ)空間,為了解決該問(wèn)題,后期使用數(shù)據(jù)庫(kù)分片技術(shù)。將一個(gè)數(shù)據(jù)庫(kù)進(jìn)行拆分,通過(guò)數(shù)據(jù)庫(kù)中間件連接。如果數(shù)據(jù)庫(kù)中該表選用ID自增策略,則可能產(chǎn)生重復(fù)的ID,此時(shí)應(yīng)該使用分布式ID生成策略來(lái)生成ID。


提示:以下是本篇文章正文內(nèi)容

一、分布式id技術(shù)選型

  • redis,優(yōu)勢(shì)是(INCR)生成一個(gè)全局連續(xù)遞增的數(shù)字類型主鍵,劣勢(shì)是增加了一個(gè)外部組件的依賴,redis不可用,則整個(gè)數(shù)據(jù)庫(kù)將無(wú)法插入
  • UUID,優(yōu)勢(shì)是全局唯一,mysql也有UUID實(shí)現(xiàn),劣勢(shì)是36個(gè)字符組成,占用空間大
  • snowflake(雪花)算法,優(yōu)勢(shì)是全局唯一,數(shù)字類型,存儲(chǔ)成本低,機(jī)器規(guī)模大于1024臺(tái)無(wú)法支持。

二、雪花算法

  • snowflake是Twitter開(kāi)源的分布式ID生成算法,結(jié)果是一個(gè)long型的ID。其核心思想是:使用41bit作為毫秒數(shù),10bit作為機(jī)器的ID(5個(gè)bit是數(shù)據(jù)中心,5個(gè)bit的機(jī)器ID),12bit作為毫秒內(nèi)的流水號(hào)(意味著每個(gè)節(jié)點(diǎn)在每毫秒可以產(chǎn)生 4096 個(gè) ID),最后還有一個(gè)符號(hào)位,永遠(yuǎn)是0。
    分布式id的概述與實(shí)現(xiàn),分布式

三、在項(xiàng)目中集成雪花算法

mybatis-plus已經(jīng)集成了雪花算法,完成以下兩步即可在項(xiàng)目中集成雪花算法:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-732854.html

  • 在實(shí)體類中的id上加入如下配置,指定類型為id_worker
@TableId(value = "id",type = IdType.ID_WORKER)
private Long id;
  • 在application.yml文件中配置數(shù)據(jù)中心id和機(jī)器id
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  type-aliases-package: com.model.pojos
  global-config:
    datacenter-id: 1
    workerId: 1

到了這里,關(guān)于分布式id的概述與實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【分布式技術(shù)專題】「分布式ID系列」百度開(kāi)源的分布式高性能的唯一ID生成器UidGenerator

    【分布式技術(shù)專題】「分布式ID系列」百度開(kāi)源的分布式高性能的唯一ID生成器UidGenerator

    UidGenerator是什么 UidGenerator是百度開(kāi)源的一款分布式高性能的唯一ID生成器,更詳細(xì)的情況可以查看官網(wǎng)集成文檔 uid-generator是基于Twitter開(kāi)源的snowflake算法實(shí)現(xiàn)的一款唯一主鍵生成器(數(shù)據(jù)庫(kù)表的主鍵要求全局唯一是相當(dāng)重要的)。要求java8及以上版本。 snowflake算法 Snowflake算法描

    2024年02月04日
    瀏覽(21)
  • 分布式id實(shí)戰(zhàn)

    分布式id實(shí)戰(zhàn)

    目錄 常用方式 特征 潛在問(wèn)題 信息安全 高性能 UUID 雪花算法 數(shù)據(jù)庫(kù)生成 美團(tuán)Leaf方案 Leaf-segment 數(shù)據(jù)庫(kù)方案 Leaf-snowflake 方案 uuid 雪花算法 數(shù)據(jù)庫(kù)主鍵 全局唯一 趨勢(shì)遞增 信息安全 如果id連續(xù)遞增, 容易被爬蟲(chóng), 批量下載數(shù)據(jù) 如果訂單id是連續(xù)遞增, 容易被競(jìng)爭(zhēng)對(duì)手推算出日交

    2024年02月21日
    瀏覽(30)
  • 分布式ID(2):雪花算法生成ID

    分布式ID(2):雪花算法生成ID

    1 雪花算法簡(jiǎn)介 這種方案大致來(lái)說(shuō)是一種以劃分命名空間(UUID也算,由于比較常見(jiàn),所以單獨(dú)分析)來(lái)生成ID的一種算法,這種方案把64-bit分別劃分成多段,分開(kāi)來(lái)標(biāo)示機(jī)器、時(shí)間等,比如在snowflake中的64-bit分別表示如下圖(圖片來(lái)自網(wǎng)絡(luò))所示: 41-bit的時(shí)間可以表示(1L

    2024年01月20日
    瀏覽(30)
  • 算法、語(yǔ)言混編、分布式鎖與分布式ID、IO模型

    算法、語(yǔ)言混編、分布式鎖與分布式ID、IO模型

    數(shù)據(jù)結(jié)構(gòu)和算法是程序的基石。我們使用的所有數(shù)據(jù)類型就是一種數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)的組織形式),寫(xiě)的程序邏輯就是算法。 算法是指用來(lái)操作數(shù)據(jù)、解決程序問(wèn)題的一組方法。 對(duì)于同一個(gè)問(wèn)題,使用不同的算法,也許最終得到的結(jié)果是一樣的,但在過(guò)程中消耗的資源(空間

    2024年02月08日
    瀏覽(21)
  • 分布式唯一ID實(shí)戰(zhàn)

    分布式唯一ID實(shí)戰(zhàn)

    UUID的標(biāo)準(zhǔn)形式包含32個(gè)16進(jìn)制數(shù)字,以 “ - ” 進(jìn)行分割,形式為 8-4-4-4-12的32個(gè)字符,實(shí)例 550e8400-e29b-41d4-a716-446655440000。 優(yōu)點(diǎn): - 性能高,本地生成,沒(méi)有網(wǎng)絡(luò)消耗 缺點(diǎn): - 不易存儲(chǔ),長(zhǎng)度太長(zhǎng),32個(gè)16進(jìn)制數(shù)字,128位 - 不安全,會(huì)暴露MAC地址 - UUID作為MySQL主鍵,會(huì)導(dǎo)致索引

    2024年02月12日
    瀏覽(93)
  • 架構(gòu)設(shè)計(jì)-分布式ID

    架構(gòu)設(shè)計(jì)-分布式ID

    1.不要用主鍵ID作為業(yè)務(wù)單號(hào)的唯一標(biāo)識(shí),因?yàn)橐皇菙?shù)據(jù)同步麻煩,第二一旦業(yè)務(wù)數(shù)據(jù)擴(kuò)張涉及到分庫(kù)分表則數(shù)據(jù)維護(hù)麻煩,因?yàn)榇藭r(shí)主鍵ID容易造成重復(fù) 。 2.對(duì)于有相似屬性的業(yè)務(wù)ID如直播或者錄播ID存儲(chǔ)在業(yè)務(wù)表中的一個(gè)字段,一旦程序員哪天狀態(tài)不好忘記區(qū)分類型,就很

    2024年02月03日
    瀏覽(20)
  • 分布式ID系統(tǒng)設(shè)計(jì)(3)

    第二集說(shuō)了id-service-Segment-DB可以生成趨勢(shì)遞增的ID,但是ID號(hào)是可以計(jì)算的。不太適用于一些訂單ID生成的場(chǎng)景。因?yàn)榇嬖跀?shù)據(jù)暴露的風(fēng)險(xiǎn) 比如我可以對(duì)比兩天的訂單ID號(hào)來(lái)大致計(jì)算出公司一天的訂單量。這個(gè)有點(diǎn)危險(xiǎn)。 所以我們需要id-serviceSnowFlake方案。 id-service-snowFlake完全沿

    2024年02月06日
    瀏覽(24)
  • 分布式ID系統(tǒng)設(shè)計(jì)(1)

    我們姑且把它叫做id-server 。那么這么個(gè)id-server的設(shè)計(jì)和考慮需要什么 全局唯一:不能出現(xiàn)重復(fù)的id號(hào) 最基本要求。 趨勢(shì)遞增: 在innodb中使用的是聚集索引。B+Tree的pk最好是有序的 單調(diào)遞增:保證下一個(gè)id一定要大于上一個(gè)id 安全:如果ID是連續(xù)的 被爬蟲(chóng)的可能性能就很大。有一些

    2024年02月08日
    瀏覽(28)
  • 分布式ID系統(tǒng)設(shè)計(jì)(2)

    https://editor.csdn.net/md/?articleId=133988963 應(yīng)用舉例 mongoDB ObjectID 就是一個(gè)典型的實(shí)現(xiàn)。 以MySQL舉例 利用給字段設(shè)置AUTO-INCREMENT來(lái)保證ID自增,每次業(yè)務(wù)使用SQL拿到MySQL的ID 這種方案的優(yōu)缺點(diǎn): 優(yōu)點(diǎn) 1 簡(jiǎn)單。利用數(shù)據(jù)庫(kù)實(shí)現(xiàn) 成本小,有專業(yè)的DBA維護(hù) 2 ID單調(diào)遞增。用來(lái)實(shí)現(xiàn)一些對(duì)于ID有

    2024年02月06日
    瀏覽(26)
  • 分布式—雪花算法生成ID

    分布式—雪花算法生成ID

    由64個(gè)Bit(比特)位組成的long類型的數(shù)字 0 | 0000000000 0000000000 0000000000 000000000 | 00000 | 00000 | 000000000000 1個(gè)bit:符號(hào)位,始終為0。 41個(gè)bit:時(shí)間戳,精確到毫秒級(jí)別,可以使用69年。 10個(gè)bit:工作機(jī)器ID,可以部署在1024個(gè)節(jié)點(diǎn)上。 12個(gè)bit:序列號(hào),每個(gè)節(jié)點(diǎn)每毫秒內(nèi)最多可以生成

    2024年02月11日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包