[發明專利]一種全局ID生成方法、裝置、設備及存儲介質有效
| 申請號: | 202110449174.6 | 申請日: | 2021-04-25 |
| 公開(公告)號: | CN113064903B | 公開(公告)日: | 2022-12-13 |
| 發明(設計)人: | 鐘江;馬黎明;黃明遠 | 申請(專利權)人: | 小馬國炬(玉溪)科技有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 薛嬌 |
| 地址: | 653100 云南省玉*** | 國省代碼: | 云南;53 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 全局 id 生成 方法 裝置 設備 存儲 介質 | ||
本發明公開了一種全局ID生成方法、裝置、設備及存儲介質,該方法包括:如果需要生成指定業務對應ID,查詢相應的ID記錄;如果當前為宕機重啟后首次生成指定業務對應的ID,確定指定業務的ID記錄中下一ID號段開始值的值為生成的ID,如果當前不為宕機重啟后首次生成指定業務對應的ID,對指定業務相應的ID記錄中的ID號段進行自增加N操作以生成ID;判斷生成的ID是否符合單個ID號段結束的要求,如果是,更新指定業務的ID記錄中下一ID號段開始值的值為該下一ID號段開始值當前的值及單個ID號段的長度值之和,否則,確定無需更新指定業務的ID記錄中下一ID號段開始值的值。從而能夠有效保證生成的ID的全局唯一性。
技術領域
本發明涉及業務開發技術領域,更具體地說,涉及一種全局ID生成方法、裝置、設備及存儲介質。
背景技術
在業務開發中,大量場景需要唯一ID(Identity document,身份標識號)來進行標識:如用戶需要唯一ID、商品需要唯一ID、消息需要唯ID、事件需要唯一ID等,這些都需要全局唯一ID,尤其是復雜的分布式業務場景中全局唯一ID更為重要。但是現有的技術方案在實現全局唯一ID生成時,如果因宕機導致重啟就會繼續按照統一的規則生成ID,但是這種方式容易和宕機之前生成的ID發生重復,進而無法實現ID的全局唯一性。
發明內容
本發明的目的是提供一種全局ID生成方法、裝置、設備及存儲介質,能夠有效保證生成的ID的全局唯一性。
為了實現上述目的,本發明提供如下技術方案:
一種全局ID生成方法,包括:
如果需要生成指定業務對應ID,則查詢相應的ID記錄;
如果當前為宕機重啟后首次生成所述指定業務對應的ID,則確定所述指定業務的ID記錄中下一ID號段開始值的值為生成的ID,如果當前不為宕機重啟后首次生成所述指定業務對應的ID,則對所述指定業務相應的ID記錄中的ID號段進行自增加N操作以生成ID;
判斷生成的ID是否符合單個ID號段結束的要求,如果是,則更新所述指定業務的ID記錄中下一ID號段開始值的值為該下一ID號段開始值當前的值及單個ID號段的長度值之和,否則,確定無需更新所述指定業務的ID記錄中下一ID號段開始值的值。
優選的,查詢相應的ID記錄包括:
在Redis中查詢相應的ID記錄;
相應的,查詢相應的ID記錄之后,還包括:
如果在所述Redis中查詢到所述指定業務相應的ID記錄,則執行生成ID的步驟,否則,在數據庫中查詢所述指定業務相應的ID記錄,并將查詢到的ID記錄寫入所述Redis中。
優選的,查詢相應的ID記錄之后,還包括:
如果在所述Redis及所述數據庫中均未查詢到相應的ID記錄,則按照預設的與所述指定業務對應的規則生成ID。
優選的,按照預設的與所述指定業務對應的規則生成ID,包括:
按照預設的所述指定業務的ID前綴及ID長度值生成相應的ID。
優選的,判斷生成的ID是否符合單個ID號段結束的要求,包括:
判斷生成的ID后M位數據的值是否分別與單個ID號段結束的ID后M位數據的值一一對應相同。
優選的,對所述指定業務相應的ID記錄中的ID號段進行自增加N操作以生成ID,包括:
調用所述Redis的原子自增指令對所述指定業務相應的ID記錄中的ID號段進行自增加N操作以生成ID。
優選的,在數據庫中查詢所述指定業務相應的ID記錄,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于小馬國炬(玉溪)科技有限公司,未經小馬國炬(玉溪)科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110449174.6/2.html,轉載請聲明來源鉆瓜專利網。





