欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java雪花算法生成分布式id詳解

 更新時間:2024年01月23日 09:49:27   作者:小星星*  
這篇文章主要介紹了Java雪花算法生成分布式id詳解,隨著業(yè)務的增長,有些表可能要占用很大的物理存儲空間,為了解決該問題,后期使用數(shù)據(jù)庫分片技術,將一個數(shù)據(jù)庫進行拆分,通過數(shù)據(jù)庫中間件連接,需要的朋友可以參考下

Java雪花算法生成分布式id

隨著業(yè)務的增長,有些表可能要占用很大的物理存儲空間,為了解決該問題,后期使用數(shù)據(jù)庫分片技術。

將一個數(shù)據(jù)庫進行拆分,通過數(shù)據(jù)庫中間件連接。

如果數(shù)據(jù)庫中該表選用ID自增策略,則可能產生重復的ID,此時應該使用分布式ID生成策略來生成ID。

在這里插入圖片描述

snowflake是Twitter開源的分布式ID生成算法,結果是一個long型的ID。

其核心思想是:使用41bit作為毫秒數(shù),10bit作為機器的ID(5個bit是數(shù)據(jù)中心,5個bit的機器ID),12bit作為毫秒內的流水號(意味著每個節(jié)點在每毫秒可以產生 4096 個 ID),最后還有一個符號位,永遠是0

在這里插入圖片描述

mybatis-plus已經(jīng)集成了雪花算法,完成以下兩步即可在項目中集成雪花算法

第一:在實體類中的id上加入如下配置,指定類型為id_worker

@TableId(value = "id",type = IdType.ID_WORKER)
private Long id;

第二:在application.yml文件中配置數(shù)據(jù)中心id和機器id

mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  # 設置別名包掃描路徑,通過該屬性可以給包中的類注冊別名
  type-aliases-package: com.heima.model.article.pojos
  global-config:
    datacenter-id: 1
    workerId: 1

datacenter-id:數(shù)據(jù)中心id(取值范圍:0-31)

workerId:機器id(取值范圍:0-31)

到此這篇關于Java雪花算法生成分布式id詳解的文章就介紹到這了,更多相關Java雪花算法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot整合Elasticsearch實現(xiàn)索引和文檔的操作方法

    SpringBoot整合Elasticsearch實現(xiàn)索引和文檔的操作方法

    Elasticsearch 基于 Apache Lucene 構建,采用 Java 編寫,并使用 Lucene 構建索引、提供搜索功能,本文分步驟通過綜合案例給大家分享SpringBoot整合Elasticsearch的相關知識,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • Java+Swing實現(xiàn)五子棋游戲的示例代碼

    Java+Swing實現(xiàn)五子棋游戲的示例代碼

    本文將通過Java語言實現(xiàn)經(jīng)典游戲—五子棋游戲,文中采用了Swing制作游戲界面,具有開始游戲,悔棋,認輸,退出等功能。感興趣的可以跟隨小編一起動手試一試
    2022-02-02
  • Java SPI機制詳細介紹

    Java SPI機制詳細介紹

    大家好,本篇文章主要講的是Java SPI機制詳細介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • SpringBoot Test 多線程報錯的根本原因(dataSource already closed)

    SpringBoot Test 多線程報錯的根本原因(dataSource already

    在使用Springboot test進行相關測試的時候,發(fā)現(xiàn)開啟線程操作數(shù)據(jù)庫的時候異常,這篇文章主要介紹了SpringBoot Test 多線程報錯:dataSource already closed的根本原因及解決方法,需要的朋友可以參考下
    2022-06-06
  • 詳解Java MyBatis 插入數(shù)據(jù)庫返回主鍵

    詳解Java MyBatis 插入數(shù)據(jù)庫返回主鍵

    這篇文章主要介紹了詳解Java MyBatis 插入數(shù)據(jù)庫返回主鍵,有興趣的可以了解一下。
    2017-01-01
  • springboot通過注解、接口創(chuàng)建定時任務詳解

    springboot通過注解、接口創(chuàng)建定時任務詳解

    使用SpringBoot創(chuàng)建定時任務其實是挺簡單的,這篇文章主要給大家介紹了關于springboot如何通過注解、接口創(chuàng)建這兩種方法實現(xiàn)定時任務的相關資料,需要的朋友可以參考下
    2021-07-07
  • 詳解Java中的do...while循環(huán)語句的使用方法

    詳解Java中的do...while循環(huán)語句的使用方法

    這篇文章主要介紹了Java中的do...while循環(huán)語句的使用方法,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-10-10
  • Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段)

    Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段)

    本篇文章主要介紹了Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • 淺談Java垃圾回收機制

    淺談Java垃圾回收機制

    這篇文章主要介紹了淺談Java垃圾回收機制,文中有非常詳細的圖文示例及代碼示例,對正在學習java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • SpringBoot將logback替換成log4j2的操作步驟

    SpringBoot將logback替換成log4j2的操作步驟

    文章介紹了如何在SpringBoot項目中將默認的日志框架logback替換為log4j2,以利用log4j2的高性能異步日志記錄特性,特別是通過Disruptor實現(xiàn)的無鎖化隊列,提高了日志處理速度,同時,文章提供了詳細的配置步驟,需要的朋友可以參考下
    2024-10-10

最新評論