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

spring boot中使用雪花算法生成雪花ID

這篇具有很好參考價值的文章主要介紹了spring boot中使用雪花算法生成雪花ID。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1、什么是雪花算法

2、雪花算法的優(yōu)缺點

3、spring boot項目中使用雪花算法使用


1、什么是雪花算法

雪花算法(Snowflake)是一種生成全局唯一ID的算法,由Twitter公司開發(fā)。它可以在分布式系統(tǒng)中生成全局唯一的ID,解決分布式系統(tǒng)中的數據合并和分片等問題。

雪花算法生成的ID是一個64位的長整型數字,由以下部分組成:

  1. 1個bit:符號位,始終為0。

  2. 41個bit:時間戳,精確到毫秒級別,可以使用69年。

  3. 10個bit:工作機器ID,可以部署在1024個節(jié)點上。

  4. 12個bit:序列號,每個節(jié)點每毫秒內最多可以生成4096個ID。

雪花算法生成ID的過程非常簡單,首先記錄一個開始時間,然后每次生成ID時計算當前時間和開始時間之間的時間差,將時間戳和工作機器ID、序列號組合成一個64位的長整型數字,返回給調用方。

雪花算法是一種高效、可靠的全局唯一ID生成算法,已經被廣泛應用于分布式系統(tǒng)中。

2、雪花算法的優(yōu)缺點

優(yōu)點:

  1. 全局唯一:雪花算法生成的ID是全局唯一的,可以用于分布式系統(tǒng)中的數據分片和數據合并,避免了ID沖突的問題。

  2. 時間有序:雪花算法生成的ID中包含了時間戳信息,可以根據ID的大小推算出生成的時間,方便進行數據排序和查詢。

  3. 高性能:雪花算法生成ID的速度很快,可以滿足高并發(fā)的場景需求。

  4. 可擴展性:雪花算法的數據結構相對簡單,易于擴展和修改。

缺點:

  1. 依賴于系統(tǒng)時鐘:雪花算法生成ID的過程中依賴于系統(tǒng)時鐘,如果系統(tǒng)時鐘發(fā)生回撥,可能會導致生成的ID出現重復。

  2. 長度固定:雪花算法生成的ID長度固定為64位,可能會導致存儲和傳輸成本較高。

  3. 不支持分布式計算:雪花算法生成ID的過程是單線程的,不能支持分布式計算。

????????雪花算法是一種高效、可靠的全局唯一ID生成算法,但需要注意時鐘回撥和長度固定等缺點。在選擇ID生成算法時,需要綜合考慮應用場景和需求,選擇適合的算法。

3、spring boot項目中使用雪花算法使用

1、引入雪花算法依賴

<dependency>
    <groupId>com.github.beyondfengyu</groupId>
    <artifactId>snowflake-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>

2、在配置文件中配置雪花算法參數

在 application.yml 或 application.properties 中配置Snowflake算法的參數:

snowflake:
  data-center-id: 1 # 數據中心ID,可以使用機器IP地址最后一段數字,范圍為0-31
  machine-id: 1 # 機器ID,可以使用服務器編號,范圍為0-31

3、注入雪花算法對象

在需要生成唯一ID的類中,使用 @Autowired 注解注入 SnowflakeIdWorker 對象:

@Service
public class UserService {
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;

    public Long generateUserId() {
        return snowflakeIdWorker.nextId();
    }
}

使用snowflakeIdWorker.nextId()方法既可以獲取生成的雪花ID。文章來源地址http://www.zghlxwxcb.cn/news/detail-785122.html

到了這里,關于spring boot中使用雪花算法生成雪花ID的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • gin-vue-admin二開使用雪花算法生成唯一標識 id

    gin-vue-admin二開使用雪花算法生成唯一標識 id

    需求場景: 總部采集分支的數據,由于分支的 id 是子增的主鍵 id,所以會出現重復的 id,但是這個 id 需要作為標識,沒有實際作用,這里選擇的是分布式 id 雪花算法生成 id 存儲用來標識,這個項目基于 gva 進行開發(fā)的,可以使用 sonyflake 和 snowflake 兩個實現方式都可以解決

    2024年01月17日
    瀏覽(21)
  • 雪花算法生成唯一數字id

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

    分布式ID生成算法——雪花算法

    一、分布式ID ID可以唯一標識一條記錄。 對于單體架構,我們可以使用自增ID來保證ID的唯一性。但是,在分布式系統(tǒng)中,簡單的使用自增ID就會導致ID沖突。這也就引出了 分布式ID 問題。分布式ID也要求滿足分布式系統(tǒng)的 高性能、高可用、高并發(fā) 的特點。 二、雪花算法 世界

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

    雪花算法(Snowflake)是一種分布式ID生成算法,可以生成唯一的、有序的、不重復的ID號,廣泛應用于分布式系統(tǒng)中。其生成的ID號由64位二進制數組成,可以轉換成16進制或10進制的字符串表示。 雪花算法的核心思想是將一個64位的二進制數分成四部分,分別表示時間戳、數據

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

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

    1 雪花算法簡介 這種方案大致來說是一種以劃分命名空間(UUID也算,由于比較常見,所以單獨分析)來生成ID的一種算法,這種方案把64-bit分別劃分成多段,分開來標示機器、時間等,比如在snowflake中的64-bit分別表示如下圖(圖片來自網絡)所示: 41-bit的時間可以表示(1L

    2024年01月20日
    瀏覽(30)
  • 分布式—雪花算法生成ID

    分布式—雪花算法生成ID

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

    2024年02月11日
    瀏覽(20)
  • 雪花算法ID生成器工具類

    可以通過配置bean添加到容器,注入使用

    2024年02月15日
    瀏覽(28)
  • 分布式唯一ID生成算法——雪花算法(SnowFlake)

    分布式唯一ID生成算法——雪花算法(SnowFlake)

    SnowFlake算法 據國家大氣研究中心的查爾斯·奈特稱,一般的雪花大約由10^19個水分子組成。在雪花形成過程中,會形成不同的結構分支,所以說大自然中不存在兩片完全一樣的雪花,每一片雪花都擁有自己漂亮獨特的形狀。 雪花算法表示生成的id如雪花般獨一無二。 snowflake是

    2023年04月20日
    瀏覽(26)
  • 雪花算法生成分布式主鍵ID

    直接上代碼,復制即可使用 在這個示例中,你可以通過 SnowflakeIdGenerator.init(dataCenterId, workerId); 初始化數據中心 ID 和工作 ID,然后通過 SnowflakeIdGenerator.generateId(); 靜態(tài)方法生成 Snowflake ID 的字符串形式。

    2024年02月22日
    瀏覽(23)
  • 分布式Id生成之雪花算法(SnowFlake)

    分布式Id生成之雪花算法(SnowFlake)

    目錄 前言 回顧二進制 二進制概念 運算法則 位(Bit) 字節(jié)(Byte) 字符 字符集 二進制原碼、反碼、補碼 有符號數和無符號數 疑問:為什么不是-127 ~ 127 ? 為什么需要分布式全局唯一ID以及分布式ID得業(yè)務需求? ID生成規(guī)則部分硬性要求 ID生成系統(tǒng)的可用性要求 通用解決方

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包