[發明專利]一種分布式唯一ID生成方法在審
| 申請號: | 202110868307.3 | 申請日: | 2021-07-30 |
| 公開(公告)號: | CN113626496A | 公開(公告)日: | 2021-11-09 |
| 發明(設計)人: | 孫志強;徐士強;楊繼偉;董玉全 | 申請(專利權)人: | 浪潮云信息技術股份公司 |
| 主分類號: | G06F16/2458 | 分類號: | G06F16/2458;G06F16/2453;G06F16/2455;G06F16/21;G06F16/22;G06F16/27 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 姜明 |
| 地址: | 250100 山東省濟南市高*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 唯一 id 生成 方法 | ||
本發明公開了一種分布式唯一ID生成方法,所述方法的實現包括內容如下:利用MySql主鍵自增的方式,實現分布式數據ID自增,利用MySql多實例主鍵自增,每次獲取ID時去數據庫請求,獲得的ID是一個ID區間段。本發明為分布式系統ID的生成提供了可靠的解決方案,適應不同的場景、需求及性能要求;完美解決了數據庫的自增問題,可讀性強,查詢效率高,可用低延時,ID生成響應快;不存在單點問題,保證ID是全局性唯一的基本要求;高可用低延時,ID生成響應快,不會成為業務瓶頸,無限接近于100%的可用性;利用分布式鎖解決了獲取ID時并發問題;趨勢遞增,滿足多種具體業務場景。
技術領域
本發明涉及分布式數據處理技術領域,具體提供一種分布式唯一ID生成方法。
背景技術
分布式系統中會對一些數據量大的業務進行分拆,如:用戶表,訂單表。因為數據量巨大一張表無法承接,就會對其進行分庫分表。但一旦涉及到分庫分表,就會引申出分布式系統中唯一主鍵ID的生成問題,要求需要唯一ID的特性:
整個系統ID唯一;ID是數字類型,而且是趨勢遞增的;ID簡短,查詢效率快;
所謂的遞增是指:第一次生成的ID為12,下一次生成的ID是13,再下一次生成的ID是14。這個就是生成ID遞增;
趨勢遞增:在一段時間內,生成的ID是遞增的趨勢。如:再一段時間內生成的ID在[0,1000]之間,過段時間生成的ID在[1000,2000]之間。但在[0-1000]區間內的時候,ID生成有可能第一次是12,第二次是10,第三次是14。
MySql:最流行的關系型數據庫管理系統,在WEB應用方面MySql是最好的RDBMS(Relational Database Management System:關系數據庫管理系統)應用軟件之一。
雙buffer:在讀、寫下標切換過程中,必然存在新、舊數據同時在使用的情況,只要保證緩沖期足夠長,那么切換就是很安全的。通常檢測線程的檢查周期是秒級的,而獲取配置信息是毫秒級甚至微秒級的,因此緩沖期是完全足夠的。
發明內容
在業務數據量不大的時候,單庫單表完全可以支撐現有業務,數據再大一點搞個MySql主從同步讀寫分離也能對付。但隨著數據日漸增長,主從同步也扛不住了,就需要對數據庫進行分庫分表,但分庫分表后需要有一個唯一ID來標識一條數據,數據庫的自增ID顯然不能滿足需求;特別一點的如訂單、優惠券也都需要有唯一ID做標識。此時一個能夠生成全局唯一ID的系統是非常必要的,這個全局唯一ID就叫分布式ID。
本發明的技術任務是針對上述存在的問題,提供一種分布式唯一ID生成方法,利用MySql主鍵自增的方式,實現分布式數據ID自增,用MySql多實例主鍵自增,在auto_increment基礎上設置step步長,每臺實例臺的初始值分別為1,2,3...N,步長為N,每次獲取ID的時候都要去數據庫請求一次,請求數據庫ID的時候,獲得的ID是一個ID區間段。
為實現上述目的,本發明提供了如下技術方案:
一種分布式唯一ID生成方法,所述方法的實現包括內容如下:
利用MySql主鍵自增的方式,實現分布式數據ID自增,利用MySql多實例主鍵自增,每次獲取ID時去數據庫請求,獲得的ID是一個ID區間段。
利用MySql主鍵自增的方式,這種方式ID自增,而且效率很高,但是存在單點問題,如果MySql宕機了,就沒辦法生成ID,而且數據庫壓力很大,高并發扛不住。如圖1所示,用MySql多實例主鍵自增解決,這樣就解決了單點問題,但是這樣做有個弊端,就是步長一旦定好,就無法擴容,而且單個數據庫壓力大,數據庫自身性能無法滿足高并發,這種方式適合不需要擴容的場景。通過設置ID區間段,非常完美的解決了數據庫自增的問題,而且可以自行定義max_id的起點,和step步長,非常方便擴容。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮云信息技術股份公司,未經浪潮云信息技術股份公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110868307.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種語法轉換遷移方法
- 下一篇:高黏釜用防結塊磁傳動攪拌裝置





