中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

雪花算法(03)生成時間

發布時間:2020-07-17 02:38:13 來源:網絡 閱讀:329 作者:小布哥哥s 欄目:編程語言

前面的理論基礎和位運算都了解了,下面我們來生成雪花算法的第一部分,也就是時間部分。時間部分的邏輯起始很簡單,就是規定一個起始時間戳,然后用當前時間戳減去起始時間戳,這兩個數的差就是我們要的結果。簡單看一下代碼邏輯:

雪花算法(03)生成時間

我們規定的起始時間是 2015-01-01 00:00:00 ,然后獲取當前時間,用當前時間減去起始時間,就是我們要的時間部分的數值。這個時候就有一個問題了,如果我們系統的時鐘錯了會不會有問題?會!所以要做判斷!而且系統的時鐘錯誤也是雪花算法的一個致命問題,所以要一定要保證服務器的系統時間正確。來看一下對時間戳的判斷:

雪花算法(03)生成時間

定義了一個變量LAST_TIME_STAMP記為上次id的生成時間,每次生成都標記一下,所以這個時間一定是遞增的,如果系統時鐘除了問題,那么直接報異常。這是對系統時間錯誤的一個判斷和處理。

就這樣時間部分就生成了,現在看看還是很簡單的。現在我們再來看雪花算法的時間范圍,由于時間共占有41位,所以時間的數字范圍是有一個最大值的,寫成2進制就是41個1,比如我們的起始時間是2015-01-01 00:00:00,時間戳是1420041600000L,把41個1轉換成long類型數字,再加上這個時間戳數字,就是一個雪花算法最終的時間戳,轉換成時間就是2084-09-06 15:47:35,也就是這個41位時間的雪花算法最長使用69年9個月6天零15小時47分35秒,不過對于一個項目來說,這樣的限制不算限制,足足的夠用了。

代碼地址:https://gitee.com/blueses/snowflake-demo 03

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沿河| 澜沧| 咸阳市| 安国市| 张北县| 泊头市| 东乌珠穆沁旗| 扎鲁特旗| 白朗县| 新郑市| 花莲县| 武夷山市| 达拉特旗| 内乡县| 恩施市| 襄垣县| 罗源县| 湖口县| 确山县| 梁山县| 安化县| 吉林市| 磐安县| 成武县| 林甸县| 龙胜| 广安市| 盐亭县| 镇平县| 汝南县| 罗城| 富蕴县| 兴和县| 陕西省| 冷水江市| 海伦市| 达孜县| 彰武县| 柳州市| 大同市| 梧州市|