[發明專利]分布式全局唯一ID生成方法和系統、存儲介質、設備在審
| 申請號: | 202010770898.6 | 申請日: | 2020-08-04 |
| 公開(公告)號: | CN112115133A | 公開(公告)日: | 2020-12-22 |
| 發明(設計)人: | 田雪峰;趙澤陽 | 申請(專利權)人: | 北京健康之家科技有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/2455;G06F16/27 |
| 代理公司: | 北京中強智尚知識產權代理有限公司 11448 | 代理人: | 黃耀威 |
| 地址: | 100102 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 分布式 全局 唯一 id 生成 方法 系統 存儲 介質 設備 | ||
本發明公開了一種分布式全局唯一ID生成方法和系統、存儲介質、設備,該方法包括:接收分布式全局唯一ID的生成請求,并識別所述生成請求對應的應用服務;查詢是否存在預先為所述應用服務分配的目標ID段;若存在所述目標ID段,則獲取所述目標ID段的目標值;基于所述目標值進行遞增,生成分布式全局唯一ID。基于本發明提供的方法,采用數據庫內存遞增方式生成分布式全局唯一ID,并且同時提供目標ID段和備用ID段的方式提高ID生成性能的同時,避免ID獲取過程中發生遠程調用阻塞。
技術領域
本發明涉及數據處理技術領域,尤其是一種分布式全局唯一ID生成方法和系統、存儲介質、設備。
背景技術
在復雜分布式系統中,往往需要對大量的數據和消息進行唯一標識。并且隨著計算機技術的發展,對于不同的業務的產品系統中的數據也隨之增長,對數據分庫分表后需要有一個唯一ID來標識一條數據或消息,因此,針對每一條數據或消息生成全局唯一ID的系統是非常必要的。
目前,在基于數據庫生成分布式全局唯一ID時,多采用snowflake算法,snowflake雪花算法在生成ID時需要分配workid,但是由于workid是有限的,因此,其對于ID的水平擴展有限。
發明內容
本發明實施例所要解決的一個技術問題是如何生成分布式全局唯一ID。
根據本發明的一個方面,提供了一種分布式全局唯一ID生成方法,包括:
接收分布式全局唯一ID的生成請求,并識別所述生成請求對應的應用服務;
查詢是否存在預先為所述應用服務分配的目標ID段;
若存在所述目標ID段,則獲取所述目標ID段的目標值;
基于所述目標值進行遞增,生成分布式全局唯一ID。
可選地,所述查詢是否存在預先為所述應用服務分配的目標ID段之后,還包括:
若不存在所述目標ID段,則查詢是否存在預先為所述應用服務分配的備用ID段;
若存在所述備用ID段,則基于所述備用ID段生成分布式全局唯一ID。
可選地,所述獲取所述目標ID段的目標值之后還包括:
判斷所述目標值是否為所述目標ID段的末端值;
若所述目標值不是所述目標ID段的末端值,則執行基于所述目標值進行遞增的步驟。
可選地,所述判斷所述目標值是否為所述目標ID段的末端值之后還包括:
若所述目標值為所述目標ID段的末端值,則查詢是否存在預先為所述應用服務分配的備用ID段;
若存在所述備用ID段,則基于所述備用ID段生成分布式全局唯一ID。
可選地,所述基于所述備用ID段生成分布式全局唯一ID包括:
將所述備用ID段作為所述應用服務的新目標ID段;
獲取所述新目標ID段的新目標值;
基于所述新目標值進行遞增,生成分布式全局唯一ID。
可選地,所述將所述備用ID段作為所述應用服務的新目標ID段之后還包括:
新建異步任務線程,為所述應用服務生成新備用ID段。
可選地,所述查詢是否存在預先為所述應用服務分配的備用ID段之后還包括:
若不存在所述備用ID段,則為所述應用服務生成備用ID段。
可選地,所述為所述應用服務生成備用ID段包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京健康之家科技有限公司,未經北京健康之家科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010770898.6/2.html,轉載請聲明來源鉆瓜專利網。





