日韩欧乱色一区二区三区在线_久久―日本道色综合久久_欧美日本一区二区_网曝91综合精品门事件在线

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > 雪花算法有什么問題?有哪些解決思路?

雪花算法有什么問題?有哪些解決思路?

來源:千鋒教育
發(fā)布人:wjy
時間: 2022-09-22 16:32:01 1663835521

  有哪些問題?

  時鐘回撥問題;

  趨勢遞增,而不是絕對遞增;

  不能在一臺服務(wù)器上部署多個分布式ID服務(wù);

雪花算法有什么問題

  如何解決時鐘回撥?

  以百度的UidGenerator為例,CachedUidGenerator方式主要通過采取如下一些措施和方案規(guī)避了時鐘回撥問題和增強唯一性:

  自增列:UidGenerator的workerId在實例每次重啟時初始化,且就是數(shù)據(jù)庫的自增ID,從而完美的實現(xiàn)每個實例獲取到的workerId不會有任何沖突。

  RingBuffer:UidGenerator不再在每次取ID時都實時計算分布式ID,而是利用RingBuffer數(shù)據(jù)結(jié)構(gòu)預先生成若干個分布式ID并保存。

  時間遞增:傳統(tǒng)的雪花算法實現(xiàn)都是通過System.currentTimeMillis()來獲取時間并與上一次時間進行比較,這樣的實現(xiàn)嚴重依賴服務(wù)器的時間。而UidGenerator的時間類型是AtomicLong,且通過incrementAndGet()方法獲取下一次的時間,從而脫離了對服務(wù)器時間的依賴,也就不會有時鐘回撥的問題

  (這種做法也有一個小問題,即分布式ID中的時間信息可能并不是這個ID真正產(chǎn)生的時間點,例如:獲取的某分布式ID的值為3200169789968523265,它的反解析結(jié)果為{"timestamp":"2019-05-02 23:26:39","workerId":"21","sequence":"1"},但是這個ID可能并不是在"2019-05-02 23:26:39"這個時間產(chǎn)生的)。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
主站蜘蛛池模板: 新化县| 五寨县| 大厂| 阿荣旗| 潍坊市| 高阳县| 会泽县| 炎陵县| 龙井市| 北安市| 贵阳市| 陕西省| 嘉善县| 名山县| 河东区| 安平县| 平凉市| 阿拉尔市| 桂平市| 德安县| 揭西县| 咸宁市| 平邑县| 永定县| 邹城市| 连云港市| 淮阳县| 桑日县| 大方县| 交口县| 墨江| 博白县| 平潭县| 福建省| 虞城县| 准格尔旗| 舟曲县| 慈溪市| 呈贡县| 平山县| 修文县|