[發明專利]一種基于snowflake的標識生成方法和裝置在審
| 申請號: | 202010474467.5 | 申請日: | 2020-05-29 |
| 公開(公告)號: | CN111694792A | 公開(公告)日: | 2020-09-22 |
| 發明(設計)人: | 張鵬 | 申請(專利權)人: | 中國建設銀行股份有限公司;建信金融科技有限責任公司 |
| 主分類號: | G06F16/13 | 分類號: | G06F16/13 |
| 代理公司: | 中原信達知識產權代理有限責任公司 11219 | 代理人: | 郝紅玉;馮培培 |
| 地址: | 100033 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 snowflake 標識 生成 方法 裝置 | ||
1.一種基于snowflake的標識生成方法,所述標識包括符號位、防時鐘回撥標記位、時間戳和序列號,所述序列號為自增序列號,其特征在于,包括:
判斷當前時間是否小于上一次生成標識的時間;
若大于或等于,則將所述防時鐘回撥標記位設置為第一數值,確定所述當前時間與基礎時間的差值,轉換所述差值得到第一時間戳,進而基于所述符號位、所述第一數值、所述第一時間戳和所述序列號,生成標識;
若小于,則確定發生時鐘回撥,獲取與時鐘回撥后的第二時間戳對應的第一標識,以將所述第一標識中的防時鐘回撥標記位由所述第一數值翻轉為第二數值,得到標識。
2.根據權利要求1所述的方法,其特征在于,所述標識還包括數據中心位和設備標識位,所述數據中心位對應于數據中心的編號,所述設備標識位對應于發放序列號的設備的編號,所述設備位于所述數據中心中;
所述基于所述符號位、所述第一數值、所述第一時間戳和所述序列號,生成標識,包括:
基于所述符號位、所述第一數值、所述第一時間戳、所述數據中心位、所述設備標識位和所述序列號,生成標識。
3.根據權利要求1或2所述的方法,其特征在于,所述標識還包括空閑位;
所述方法還包括:
將所述空閑位中的每位設置為第三數值;以及
在將所述空閑位中的一位或多位移動至其他標識位后,根據剩余空閑位的位數,得到第四數值。
4.根據權利要求3所述的方法,其特征在于,所述標識為64位整數,為避免生成負數,將第1位符號位設置為零,只使用剩余的63位。
5.根據權利要求1或2所述的方法,其特征在于,所述標識為64位減去空閑位位數后的整數;
所述方法還包括:
將所述空閑位從64位標識中移除;以及
將所述空閑位中的一位或多位添加至其他標識位,以對其他標識位進行位數擴展。
6.一種基于snowflake的標識生成裝置,所述標識包括符號位、防時鐘回撥標記位、時間戳和序列號,所述序列號為自增序列號,其特征在于,包括:
比對模塊,用于判斷當前時間是否小于上一次生成標識的時間;
第一生成模塊,用于若大于或等于,則將所述防時鐘回撥標記位設置為第一數值,確定所述當前時間與基礎時間的差值,轉換所述差值得到第一時間戳,進而基于所述符號位、所述第一數值、所述第一時間戳和所述序列號,生成標識;
第二生成模塊,用于若小于,則確定發生時鐘回撥,獲取與時鐘回撥后的第二時間戳對應的第一標識,以將所述第一標識中的防時鐘回撥標記位由所述第一數值翻轉為第二數值,得到標識。
7.一種電子設備,其特征在于,包括:
一個或多個處理器;
存儲裝置,用于存儲一個或多個程序,
當所述一個或多個程序被所述一個或多個處理器執行,使得所述一個或多個處理器實現如權利要求1-5中任一所述的方法。
8.一種計算機可讀介質,其上存儲有計算機程序,其特征在于,所述程序被處理器執行時實現如權利要求1-5中任一所述的方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國建設銀行股份有限公司;建信金融科技有限責任公司,未經中國建設銀行股份有限公司;建信金融科技有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010474467.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種基于Redis的標識生成方法和裝置
- 下一篇:雙工位換模臺車





