[發明專利]一種號段模式下生成分布式ID的方法在審
| 申請號: | 202011076032.1 | 申請日: | 2020-10-10 |
| 公開(公告)號: | CN112181306A | 公開(公告)日: | 2021-01-05 |
| 發明(設計)人: | 陳科明;檀宇;杜坤;周濤 | 申請(專利權)人: | 杭州電子科技大學 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06;H04L29/12 |
| 代理公司: | 浙江千克知識產權代理有限公司 33246 | 代理人: | 周希良 |
| 地址: | 310018 浙江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 模式 生成 分布式 id 方法 | ||
本發明公開了一種號段模式下生成分布式ID的方法。本發明首先由客戶端調用ID生成服務模塊;其次從數據庫讀取下一個可用的ID序號;最后利用讀取的ID序號生成對應的業務ID并存入相應的業務表中。其中,以第二步具體是判斷本地內存中ID號段是否使用完;如果使用完從數據庫中批量獲取一段ID序號,并保存在本地內存中;否則根據本地內存中緩存的ID順序遞增生成業務ID。本發明還提出一種雙緩沖區優化的方法。通過創建異步線程讀取數據庫中下一個可用號段。本發明針對原有方案的多次讀取數據庫修改為批量獲取號段,減少訪問數據庫次數,降低數據庫的壓力。本發明還建立雙緩沖區,異步獲取號段減少阻塞概率,甚至可以達到無阻塞狀態。
技術領域
本發明涉及計算機技術領域,尤其涉及一種分布式系統下使用號段模式生成分布式ID的方法。
背景技術
隨著互聯網的快速發展,項目體量越來越大,在復雜分布式系統中,往往需要對大量的數據和消息進行唯一標識。數據日漸增長,對數據分庫分表后需要有一個唯一ID來標識一條數據或消息,MySQL數據庫的自增ID顯然不能滿足需求,此時一個能夠生成全局唯一ID的系統是非常必要的。
在分布式系統中我們需要部署多臺機器,每臺機器設置不同的初始值,且步長和機器數相等。比如有兩臺機器。設置步長step為2,如TicketServer1的初始值為1(1,3,5,7,9,11…);TicketServer2的初始值為2(2,4,6,8,10…)。以此類推,假設我們要部署N臺機器,步長需設置為N,每臺的初始值依次為0,1,2…N-1。則第一臺機器為0,N,2N,3N…;第二臺為1,1+N,1+2N…;第三臺,以至于第N-1臺也是這樣的規律。
這種架構貌似能夠滿足性能的需求,但有以下幾個缺點:
1、系統水平擴展比較困難,比如定義好了步長和機器臺數之后,如果要添加機器該怎么做。假設現在只有一臺機器發號是1,2,3,4,5(步長是1),這個時候需要擴容機器一臺。可以這樣做:把第二臺機器的初始值設置得比第一臺超過很多,比如14(假設在擴容時間之內第一臺不可能發到14),同時設置步長為2,那么這臺機器下發的號碼都是14以后的偶數。然后摘掉第一臺,把ID值保留為奇數,比如7,然后修改第一臺的步長為2。讓它符合我們定義的號段標準,對于這個例子來說就是讓第一臺以后只能產生奇數。擴容方案看起來復雜嗎。貌似還好,現在想象一下如果我們線上有100臺機器,這個時候要擴容該怎么做。簡直是噩夢。所以系統水平擴展方案復雜難以實現。
2、ID沒有了單調遞增的特性,只能趨勢遞增,這個缺點對于一般業務需求不是很重要,可以容忍。
3、數據庫壓力還是很大,每次獲取ID都得讀寫一次數據庫,只能靠堆機器來提高性能。
發明內容
本發明針對現有技術的不足,提供了一種號段模式下生成分布式ID的方法
包括以下步驟:
第一步:客戶端調用ID生成服務模塊;
第二步:從數據庫讀取下一個可用的ID序號;
第三步:利用讀取的ID序號生成對應的業務ID并存入相應的業務表中。
其中,以上所述第二步從數據庫讀取下一個可用的ID序號的步驟包括:
(1)、判斷本地內存中ID號段是否使用完;如果使用完就跳到第(2)步,否則的話跳到第(3)步。
(2)、從數據庫DB中批量獲取一段ID序號,并保存在本地內存中。
(3)、根據本地內存中緩存的ID順序遞增生成業務ID。
本發明還提出一種雙緩沖區優化的方法。
所述為以上的第(2)步從數據庫批量獲取一段ID序號,并保存在本地內存中的步驟包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州電子科技大學,未經杭州電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011076032.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種應用于土地整治施工用的修復處理裝置
- 下一篇:一種火焰除草機





