[發明專利]一種全局唯一ID生成方法、系統及存儲介質有效
| 申請號: | 201711386024.5 | 申請日: | 2017-12-20 |
| 公開(公告)號: | CN108108252B | 公開(公告)日: | 2020-09-29 |
| 發明(設計)人: | 劉暢;吳鵬 | 申請(專利權)人: | 馬上消費金融股份有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F16/22;H04L29/06 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 羅滿 |
| 地址: | 401121 重慶市渝北區*** | 國省代碼: | 重慶;50 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 全局 唯一 id 生成 方法 系統 存儲 介質 | ||
本發明公開了一種全局唯一ID生成方法、系統及存儲介質,應用于分布式系統,包括:根據使用方需求預先將序列號ID劃分定義為N個部分,并將N個部分的生成算法封裝于全局唯一ID服務,其中,ID的位數不超過64比特,N為正整數;接收用戶的服務請求,調用全局唯一ID服務生成與服務請求一一對應的全局唯一ID。本申請生成的ID的位數不超過64比特,能夠在主流編程語言或系統平臺上使用基本數據類型來表示,便于程序高效處理,在計算、存儲、網絡傳輸方面可大大節省內存、磁盤、帶寬占用。另外,本申請生成的ID可以攜帶業務信息,使用方可根據自定義內容將ID值反解出業務相關信息,給業務系統帶來了意想不到的便利。
技術領域
本發明涉及分布式系統領域,特別是涉及一種全局唯一ID生成方法、系統及存儲介質。
背景技術
隨著互聯網的飛速發展,大規模、分布式應用系統逐漸成為軟件系統的標配。在分布式系統中,單機系統原有的基礎組件往往不能滿足需求,需要重新設計和實現,數據ID(identification,序列號)就是其中一例?,F有技術中,廣泛應用于分布式系統的全局唯一ID的典型生成方式是UUID(Universally Unique Identifier,通用唯一識別碼),其標準格式是一個32位的16進制字符串,其二進制表示為128比特,至少需要16個字節來表示。
可見,一方面UUID的長度超過了大多數主流編程語言基本數據類型的長度,如Java/C++中最長的基本數據類型(long型)只有8個字節,要表示16字節的UUID,則需要使用復合類型,占用的存儲空間及網絡帶寬較多。另一方面,UUID是一個隨機序列號,其內容通常是不透明的,不能攜帶業務相關信息,例如無法從UUID本身推斷其表示一個客戶還是一個訂單。
因此如何提供一種解決上述技術問題的方案是本領域技術人員目前需要解決的問題。
發明內容
本發明的目的是提供一種全局唯一ID生成方法、系統及存儲介質,ID位數不超過64比特,能夠在主流編程語言或系統平臺上使用基本數據類型來表示,便于程序高效處理,在計算、存儲、網絡傳輸方面可大大節省內存、磁盤、帶寬占用;ID可以攜帶業務信息,使用方可根據自定義內容將ID值反解出業務相關信息,給業務系統帶來了意想不到的便利。
為解決上述技術問題,本發明提供了一種全局唯一ID生成方法,應用于分布式系統,包括:
根據使用方需求預先將序列號ID劃分定義為N個部分,并將N個所述部分的生成算法封裝于全局唯一ID服務,其中,所述ID的位數不超過64比特,N為正整數;
接收用戶的服務請求,調用所述全局唯一ID服務生成與所述服務請求一一對應的全局唯一ID。
優選地,所述ID劃分定義的N個部分包括用于指示當前ID版本的版本號部分。
優選地,所述ID劃分定義的N個部分包括用于指示當前ID生成時間的時間戳部分。
優選地,所述ID劃分定義的N個部分包括用于指示當前所述ID在所述生成時間中的生成序列的序列號部分。
優選地,所述ID劃分定義的N個部分包括用于指示當前ID生成機房的數據中心號部分。
優選地,所述ID劃分定義的N個部分包括用于指示當前所述ID在所述生成機房中的生成機器的機器號部分。
優選地,所述ID劃分定義的N個部分包括用于指示當前ID業務數據類型的業務編號部分。
優選地,所述ID劃分定義的N個部分包括預留的用于根據所述使用方需求擴展的擴展部分。
為解決上述技術問題,本發明還提供了一種全局唯一ID生成系統,應用于分布式系統,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于馬上消費金融股份有限公司,未經馬上消費金融股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711386024.5/2.html,轉載請聲明來源鉆瓜專利網。





