精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Springboot整合百度開源分布式ID生成器UIDGenerator

開發(fā) 前端 分布式
UidGenerator是Java實(shí)現(xiàn)的, 基于Snowflake算法的唯一ID生成器。UidGenerator以組件形式工作在應(yīng)用項(xiàng)目中, 支持自定義workerId位數(shù)和初始化策略, 從而適用于docker等虛擬化環(huán)境下實(shí)例自動(dòng)重啟、漂移等場(chǎng)景。

[[411081]]

環(huán)境:sprinboot2.3.12.RELEASE + uid-generator1.0.0

簡(jiǎn)介

UidGenerator是Java實(shí)現(xiàn)的, 基于Snowflake算法的唯一ID生成器。UidGenerator以組件形式工作在應(yīng)用項(xiàng)目中, 支持自定義workerId位數(shù)和初始化策略, 從而適用于docker等虛擬化環(huán)境下實(shí)例自動(dòng)重啟、漂移等場(chǎng)景。 在實(shí)現(xiàn)上, UidGenerator通過借用未來時(shí)間來解決sequence天然存在的并發(fā)限制; 采用RingBuffer來緩存已生成的UID, 并行化UID的生產(chǎn)和消費(fèi), 同時(shí)對(duì)CacheLine補(bǔ)齊,避免了由RingBuffer帶來的硬件級(jí)「?jìng)喂蚕怼箚栴}. 最終單機(jī)QPS可達(dá)600萬。

依賴版本:Java8及以上版本, MySQL(內(nèi)置WorkerID分配器, 啟動(dòng)階段通過DB進(jìn)行分配; 如自定義實(shí)現(xiàn), 則DB非必選依賴)

Snowflake算法

Springboot整合百度開源分布式ID生成器UIDGenerator

Snowflake算法描述:指定機(jī)器 & 同一時(shí)刻 & 某一并發(fā)序列,是唯一的。據(jù)此可生成一個(gè)64 bits的唯一ID(long)。默認(rèn)采用上圖字節(jié)分配方式:

  • sign(1bit) 固定1bit符號(hào)標(biāo)識(shí),即生成的UID為正數(shù)。
  • delta seconds (28 bits) 當(dāng)前時(shí)間,相對(duì)于時(shí)間基點(diǎn)"2016-05-20"的增量值,單位:秒,最多可支持約8.7年
  • worker id (22 bits) 機(jī)器id,最多可支持約420w次機(jī)器啟動(dòng)。內(nèi)置實(shí)現(xiàn)為在啟動(dòng)時(shí)由數(shù)據(jù)庫(kù)分配,默認(rèn)分配策略為用后即棄,后續(xù)可提供復(fù)用策略。
  • sequence (13 bits) 每秒下的并發(fā)序列,13 bits可支持每秒8192個(gè)并發(fā)。

以上參數(shù)均可通過Spring進(jìn)行自定義

CachedUidGenerator

RingBuffer環(huán)形數(shù)組,數(shù)組每個(gè)元素成為一個(gè)slot。RingBuffer容量,默認(rèn)為Snowflake算法中sequence最大值,且為2^N。可通過boostPower配置進(jìn)行擴(kuò)容,以提高RingBuffer 讀寫吞吐量。

Tail指針、Cursor指針用于環(huán)形數(shù)組上讀寫slot:

  • Tail指針 表示Producer生產(chǎn)的最大序號(hào)(此序號(hào)從0開始,持續(xù)遞增)。Tail不能超過Cursor,即生產(chǎn)者不能覆蓋未消費(fèi)的slot。當(dāng)Tail已趕上curosr,此時(shí)可通過rejectedPutBufferHandler指定PutRejectPolicy
  • Cursor指針 表示Consumer消費(fèi)到的最小序號(hào)(序號(hào)序列與Producer序列相同)。Cursor不能超過Tail,即不能消費(fèi)未生產(chǎn)的slot。當(dāng)Cursor已趕上tail,此時(shí)可通過rejectedTakeBufferHandler指定TakeRejectPolicy
Springboot整合百度開源分布式ID生成器UIDGenerator

 CachedUidGenerator采用了雙RingBuffer,Uid-RingBuffer用于存儲(chǔ)Uid、Flag-RingBuffer用于存儲(chǔ)Uid狀態(tài)(是否可填充、是否可消費(fèi))

由于數(shù)組元素在內(nèi)存中是連續(xù)分配的,可最大程度利用CPU cache以提升性能。但同時(shí)會(huì)帶來「?jìng)喂蚕怼笷alseSharing問題,為此在Tail、Cursor指針、Flag-RingBuffer中采用了CacheLine 補(bǔ)齊方式。

Springboot整合百度開源分布式ID生成器UIDGenerator

RingBuffer填充時(shí)機(jī)

  • 初始化預(yù)填充 RingBuffer初始化時(shí),預(yù)先填充滿整個(gè)RingBuffer.
  • 即時(shí)填充 Take消費(fèi)時(shí),即時(shí)檢查剩余可用slot量(tail - cursor),如小于設(shè)定閾值,則補(bǔ)全空閑slots。閾值可通過paddingFactor來進(jìn)行配置,請(qǐng)參考Quick Start中CachedUidGenerator配置
  • 周期填充 通過Schedule線程,定時(shí)補(bǔ)全空閑slots。可通過scheduleInterval配置,以應(yīng)用定時(shí)填充功能,并指定Schedule時(shí)間間隔

以上為百度的官方介紹,接下來我們將其整合到Springboot項(xiàng)目中

UIDGenerator下載

在下面地址下載uid-generator

Springboot整合百度開源分布式ID生成器UIDGenerator

UIDGenerator環(huán)境配置

創(chuàng)建表

  1. DROP TABLE IF EXISTS WORKER_NODE; 
  2. CREATE TABLE WORKER_NODE 
  3.   ID BIGINT NOT NULL AUTO_INCREMENT COMMENT 'auto increment id'
  4.   HOST_NAME VARCHAR(64) NOT NULL COMMENT 'host name'
  5.   PORT VARCHAR(64) NOT NULL COMMENT 'port'
  6.   TYPE INT NOT NULL COMMENT 'node type: ACTUAL or CONTAINER'
  7.   LAUNCH_DATE DATE NOT NULL COMMENT 'launch date'
  8.   MODIFIED TIMESTAMP NOT NULL COMMENT 'modified time'
  9.   CREATED TIMESTAMP NOT NULL COMMENT 'created time'
  10.   PRIMARY KEY(ID) 
  11. )COMMENT='DB WorkerID Assigner for UID Generator',ENGINE = INNODB; 

 將其項(xiàng)目中的mapper.xml文件copy到自己項(xiàng)目中,對(duì)應(yīng)的WorkerNodeEntity,WorkerNodeDAO,

DisposableWorkerIdAssigner都copy到自己的項(xiàng)目中。

DisposableWorkerIdAssigner主要是修改注入的dao,因?yàn)檫@里我們需要修改默認(rèn)的dao相關(guān)的配置。

項(xiàng)目配置

依賴

  1. <dependency> 
  2.   <groupId>mysql</groupId> 
  3.   <artifactId>mysql-connector-java</artifactId> 
  4.   <scope>runtime</scope> 
  5. </dependency> 
  6. <dependency> 
  7.   <groupId>org.mybatis.spring.boot</groupId> 
  8.   <artifactId>mybatis-spring-boot-starter</artifactId> 
  9.   <version>2.1.4</version> 
  10. </dependency> 
  11. <dependency> 
  12.   <groupId>com.github.pagehelper</groupId> 
  13.   <artifactId>pagehelper-spring-boot-starter</artifactId> 
  14.   <version>1.3.0</version> 
  15. </dependency> 

mybatis配置

  1. pagehelper: 
  2.   helperDialect: mysql 
  3.   reasonable: true 
  4.   pageSizeZero: true 
  5.   offsetAsPageNum: true 
  6.   rowBoundsWithCount: true 
  7. --- 
  8. mybatis: 
  9.   type-aliases-package: com.pack.domain 
  10.   mapper-locations: 
  11.   - classpath:/mappers/*.xml 
  12.   configuration: 
  13.     lazy-loading-enabled: false 
  14.     aggressive-lazy-loading: false  

 mapper文件中的namespace及對(duì)應(yīng)domain修改為自己路徑下的。

配置UIDGenerator

  1. @Configuration 
  2. public class UIDConfig { 
  3.      
  4.     @Bean 
  5.     public DefaultUidGenerator defaultUidGenerator(DisposableWorkerIdAssigner disposableWorkerIdAssigner) { 
  6.         DefaultUidGenerator defaultUidGenerator = new DefaultUidGenerator() ; 
  7.         defaultUidGenerator.setWorkerIdAssigner(disposableWorkerIdAssigner) ; 
  8.         defaultUidGenerator.setTimeBits(29) ; 
  9.         defaultUidGenerator.setWorkerBits(21) ; 
  10.         defaultUidGenerator.setSeqBits(13) ; 
  11.         defaultUidGenerator.setEpochStr("2021-01-01") ; 
  12.         return defaultUidGenerator ; 
  13.     } 
  14.  

 注意這里的

DisposableWorkerIdAssigner是copy到自己項(xiàng)目中的,不是百度提供的。

  1. @Component 
  2. public class DisposableWorkerIdAssigner implements WorkerIdAssigner { 
  3.   @Resource 
  4.   private WorkerNodeMapper workerNodeDAO; 
  5.   // other code 

 到此所有的都配置完成了。

測(cè)試

  1. @Resource 
  2. private DefaultUidGenerator uidGenerator ; 
  3.      
  4. @Test 
  5. public void testGeneratorId() { 
  6.   for (int i = 0; i < 10; i++) { 
  7.     System.out.println(uidGenerator.getUID()) ; 
  8.   } 
Springboot整合百度開源分布式ID生成器UIDGenerator
Springboot整合百度開源分布式ID生成器UIDGenerator

完畢!!!

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2017-07-01 16:02:39

分布式ID生成器

2019-12-27 10:00:34

開源技術(shù) 軟件

2020-11-04 14:40:26

分布式Tinyid數(shù)據(jù)庫(kù)

2024-10-07 08:52:59

分布式系統(tǒng)分布式 IDID

2025-03-11 08:50:00

CASID分布式

2023-02-22 14:04:54

2022-01-10 11:58:51

SpringBootPulsar分布式

2019-09-05 13:06:08

雪花算法分布式ID

2011-08-12 10:58:51

Hadoop

2023-01-13 07:39:07

2024-10-29 08:30:31

2016-11-29 09:12:21

數(shù)據(jù)庫(kù)分布式ID

2024-12-04 09:36:37

2021-07-23 11:24:54

Create Inc開源G代碼生成器

2024-08-19 00:00:00

表單生成器開發(fā)開源

2022-02-23 07:09:30

分布式ID雪花算法

2022-06-27 08:21:05

Seata分布式事務(wù)微服務(wù)

2011-10-28 16:19:21

百度搜索

2013-10-12 10:25:20

百度云 Cooliris

2016-11-08 21:18:22

百度
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一区二区三区产品免费精品久久75| 日本欧美在线看| 精品国产免费久久| 久久精品免费一区二区| 免费在线看v| 久久精品国产精品亚洲综合| 欧美wwwxxxx| chinese麻豆新拍video| 成人软件在线观看| 亚洲视频免费观看| 美女亚洲精品| 国产精品一区二区av白丝下载| 亚洲无毛电影| 国产亚洲一区二区三区| 久久综合五月天| 日本道中文字幕| 全球最大av网站久久| 一区二区三区影院| 色综合666| 粉嫩小泬无遮挡久久久久久| 日本系列欧美系列| 午夜欧美大片免费观看| 成人欧美一区二区三区黑人一 | 7777kkkk成人观看| 香蕉成人在线视频| 黑人久久a级毛片免费观看| 欧美亚洲一区二区三区四区| 成人av网站观看| 日韩免费av网站| 香蕉久久99| 91精品国产综合久久久蜜臀粉嫩| 欧美日韩亚洲一| 最新av在线播放| 国产欧美精品日韩区二区麻豆天美| 成人国产一区二区| 国产精品久久久久久免费播放| 久久国产精品久久久久久电车| 久久久国产精品亚洲一区| 欧洲美一区二区三区亚洲| 国产suv精品一区二区四区视频| 欧美日韩精品专区| 日本va中文字幕| 在线天堂新版最新版在线8| 亚洲一区二区三区美女| 中文字幕综合在线观看| 国产一级片免费在线观看| 欧美激情第8页| 日韩在线观看免费全| 91精品人妻一区二区三区蜜桃欧美| 韩国精品福利一区二区三区| 精品毛片乱码1区2区3区| 视频区 图片区 小说区| 四虎精品在线观看| 欧美性xxxxxxxx| 国产成人手机视频| 高清av一区二区三区| 色婷婷av一区二区三区大白胸| 国产青青在线视频| 福利影院在线看| 亚洲成av人片www| 国产女主播自拍| www.综合网.com| 亚洲国产视频网站| 91丨porny丨探花| h片在线观看视频免费| 婷婷国产v国产偷v亚洲高清| 成人免费播放器| 美女高潮视频在线看| 欧美日韩中文字幕综合视频| 激情五月开心婷婷| 丝袜美腿一区| 欧美日韩国产综合一区二区| 天堂视频免费看| 国产日韩一区二区三免费高清| 91精品免费在线观看| 午夜免费视频网站| www.成人网| 亚洲免费视频网站| www.久久久精品| 欧美午夜三级| 日韩午夜激情免费电影| 无码人妻一区二区三区在线| 日韩精品导航| 在线电影欧美日韩一区二区私密| 久草手机视频在线观看| 欧美日本一区二区视频在线观看| 久久久人成影片一区二区三区观看| 欧美三级午夜理伦| 日本91福利区| 5g国产欧美日韩视频| 五月激情六月婷婷| 中文在线一区二区 | 中文字幕永久免费| 多野结衣av一区| 日韩欧美福利视频| 在线观看国产一级片| 亚洲精品视频一二三区| 亚洲摸下面视频| 九九这里只有精品视频| 亚洲国产欧美国产综合一区| 国产精品九九久久久久久久| 国产chinasex对白videos麻豆| 99久久国产综合精品麻豆| 日韩中文一区二区三区| 青草在线视频| 国产精品成人免费在线| 人人妻人人澡人人爽欧美一区双| 欧美成人性网| 日韩欧美你懂的| 女~淫辱の触手3d动漫| 性xxxx欧美老肥妇牲乱| 亚洲欧美日韩国产精品| caoporn91| 欧美r级电影| 欧美激情国产高清| 国产精品51麻豆cm传媒| 成人午夜在线播放| 少妇精品久久久久久久久久| hd国产人妖ts另类视频| 欧美日韩国产另类不卡| 亚洲成人av免费在线观看| 欧美xxav| 国产精品久久久久久网站| 少妇精品视频一区二区| 亚洲欧美色图小说| 成人亚洲视频在线观看| 日本在线中文字幕一区| 久久97精品久久久久久久不卡| 亚洲综合第一区| 亚洲一级一区| 欧美激情一区二区久久久| 国模私拍一区二区| 久久综合九色综合久久久精品综合| 996这里只有精品| 欧美综合社区国产| 国产亚洲欧美日韩美女| 国产高清中文字幕| 白白色亚洲国产精品| 免费极品av一视觉盛宴| 国产亚洲精aa在线看| 日韩亚洲成人av在线| 波多野结衣电车痴汉| www成人在线观看| 精品国产一二三四区| www.成人影院| 亚洲精品成人久久电影| 99久久久无码国产精品性 | 丁香桃色午夜亚洲一区二区三区| 先锋影音日韩| 麻豆精品蜜桃| 一区二区三区动漫| 国语对白做受69按摩| 国产日韩亚洲欧美综合| www日韩在线观看| 国产一区二区三区不卡视频网站| 欧美在线视频免费观看| 色在线免费视频| 欧美日韩综合视频| 免费网站在线高清观看| 免费人成精品欧美精品 | 午夜免费福利影院| 99riav1国产精品视频| 久久艹中文字幕| 韩国成人动漫| 中文字幕亚洲字幕| 国产精品-色哟哟| 亚洲柠檬福利资源导航| 制服下的诱惑暮生| 一区在线视频观看| 免费一区二区三区| 日本欧美一区| 久久精品国产一区| 亚洲AV无码一区二区三区少妇| 午夜久久电影网| www.66久久| 欧美一区二区三区爱爱| 日韩欧美视频免费观看| 韩国一区二区在线观看| 肉大捧一出免费观看网站在线播放| 免费黄网站在线观看| 色婷婷综合中文久久一本| 蜜桃久久精品成人无码av| 久久99精品国产.久久久久| 三年中文高清在线观看第6集| 榴莲视频成人app| 性欧美xxxx视频在线观看| 黄色av网站在线| 91精品久久久久久久99蜜桃| 久久9999久久免费精品国产| 久久综合色8888| 超碰超碰在线观看| 韩国一区二区三区在线观看| 欧美欧美一区二区| 96sao精品免费视频观看| 欧美激情久久久| 国产中文在线观看| 日韩视频免费观看高清完整版在线观看| 久久久久成人网站| 91麻豆高清视频| 伊人色在线视频| 国产亚洲永久域名| 自拍偷拍一区二区三区| 欧美成人基地| 成人性生交大片免费看视频直播 | 日韩av一区二区在线| 久久久久久久亚洲| 夜夜嗨av一区二区三区| 性猛交娇小69hd| 国产成人av电影免费在线观看| 无码人妻丰满熟妇区毛片| 欧美国产三级| 色姑娘综合av| 精品丝袜久久| 91天堂在线观看| 成人啊v在线| 午夜精品久久久久久久99黑人| 天堂中文а√在线| 亚洲男人的天堂在线| 亚洲a视频在线| 欧美人牲a欧美精品| 69成人免费视频| 一区二区三区在线观看欧美| www.com.av| 久久精品欧美一区二区三区不卡 | 夜夜嗨av色一区二区不卡| 性一交一乱一精一晶| 欧美日韩国产在线观看| 国产伦精品一区二区三区视频网站| 一区二区三区国产| 欧美日韩色视频| 日本一区二区三区dvd视频在线| 日批在线观看视频| 欧美在线首页| 日韩欧美一区二区三区久久婷婷| 精品一区二区男人吃奶| 99蜜桃在线观看免费视频网站| 国精品产品一区| 青青精品视频播放| 成人女同在线观看| 欧美成人久久久| 麻豆网站在线| 日韩一区视频在线| 午夜视频成人| 中文字幕亚洲一区在线观看 | 国产福利亚洲| 国产成人精品电影| 欧美男女交配| 日韩美女写真福利在线观看| 中文字幕21页在线看| 欧美亚洲在线观看| av日韩电影| 国产精品video| 日本肉肉一区| 国产美女被下药99| 国产激情在线观看| 日韩有码在线电影| 免费av网站在线看| 久久精品国产成人| 成人影院在线观看| 九九热视频这里只有精品| 在线网址91| 久久免费视频在线观看| 麻豆理论在线观看| 国产成人激情视频| 99re久久| 亚洲www永久成人夜色| 18国产精品| 国产日韩欧美一区二区三区四区| 红杏视频成人| 久久一区二区精品| 欧美日韩国产传媒| 久久久久亚洲av无码专区喷水| 欧美另类亚洲| 高清在线观看免费| 日韩成人午夜精品| 久久精品久久99| 国产成人精品三级| 精品人妻一区二区三区日产| 久久影院视频免费| 91大神福利视频| 一区二区三区波多野结衣在线观看| 日本熟女一区二区| 色呦呦国产精品| 国产理论视频在线观看| 亚洲第一偷拍网| 国产精品一区在线看| 久久色精品视频| www中文字幕在线观看| 国产精品福利在线观看网址| 精品成人18| 久久精品国产99精品国产亚洲性色| 精品亚洲成人| 日韩成人三级视频| 天堂成人免费av电影一区| 亚洲一级片av| 久久这里只有精品首页| 成人在线观看小视频| 狠狠久久亚洲欧美专区| 国产日韩欧美视频在线观看| 亚洲精品狠狠操| 美女写真理伦片在线看| 97视频在线观看成人| 欧洲亚洲精品久久久久| 国内精品视频在线播放| 五月综合激情| 久久久久狠狠高潮亚洲精品| 国产乱码精品一区二区三区五月婷 | 香蕉久久久久久久av网站| 亚洲娇小娇小娇小| 91在线视频观看| 国产女人18水真多毛片18精品| 色综合中文字幕| 亚洲av综合色区无码一区爱av| 色狠狠av一区二区三区香蕉蜜桃| h片精品在线观看| 91在线视频一区| 精品国产午夜| 色综合久久久久无码专区| 国产精品综合av一区二区国产馆| 亚洲国产日韩一区无码精品久久久| 亚洲午夜久久久久久久久电影网 | 日本爱爱小视频| 日韩欧美国产成人| 亚洲精品一区二区三区四区| 日韩亚洲在线观看| 成人日韩在线观看| 久久精品日韩精品| 国语对白精品一区二区| 一级做a免费视频| 日本一区二区免费在线观看视频 | 成人黄色片在线| 精品视频亚洲| 国产视频在线视频| 91色乱码一区二区三区| www.youjizz.com亚洲| 日韩一区二区免费在线观看| 99在线播放| 91在线精品视频| 91精品亚洲| 久久久久久久久久一区| 中文字幕av一区二区三区| 波多野结衣mp4| 亚洲偷欧美偷国内偷| 一个人www视频在线免费观看| 国产一区免费视频| 亚洲二区视频| fc2成人免费视频| 亚洲国产精品精华液网站| 亚洲精品久久久久avwww潮水| 欧美老女人xx| 视频成人永久免费视频| 国产一区二区三区免费不卡| 欧美久久视频| 免费看三级黄色片| 亚洲尤物在线视频观看| 高h震动喷水双性1v1| 久久久久久久久久久人体| 大伊香蕉精品在线品播放| 久久国产精品视频在线观看| av电影一区二区| 特级做a爱片免费69| 亚洲区免费影片| 91亚洲精品| 警花观音坐莲激情销魂小说| 国产精品自在在线| 国产成人啪精品午夜在线观看| 亚洲激情自拍图| 伊人久久视频| 亚洲国产精品www| 国产在线乱码一区二区三区| 精品在线免费观看视频| 亚洲精品美女视频| 国产v综合v| 久久av秘一区二区三区| 福利91精品一区二区三区| 中文字幕亚洲高清| 亚洲天堂第二页| 国产高清亚洲| 成人免费视频91| 国产亚洲综合性久久久影院| 97超碰人人草| 国内精品久久久久影院优 | 亚洲精品乱码久久久久久蜜桃91| 久久99国产精品成人| 久久一级黄色片| 亚洲美女久久久| 亚洲色图综合| 欧美成人一区二区在线观看| 中文字幕乱码日本亚洲一区二区 | 亚洲精品动漫100p| 日韩av超清在线观看| 国产精品无码电影在线观看| 久久日一线二线三线suv| 97人妻一区二区精品免费视频| 久久久久久久久综合| 欧洲视频一区| 日韩Av无码精品| 欧美日韩极品在线观看一区| 日本不卡1234视频| 天天干天天色天天爽|