[發明專利]分布式短序列號生成方法及裝置在審
| 申請號: | 202110451781.6 | 申請日: | 2021-04-26 |
| 公開(公告)號: | CN113515557A | 公開(公告)日: | 2021-10-19 |
| 發明(設計)人: | 吳振東;楊旭;楊基甸;王聰聰 | 申請(專利權)人: | 中國工商銀行股份有限公司 |
| 主分類號: | G06F16/2458 | 分類號: | G06F16/2458 |
| 代理公司: | 北京三友知識產權代理有限公司 11127 | 代理人: | 任默聞;王濤 |
| 地址: | 100140 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 分布式 序列號 生成 方法 裝置 | ||
本發明提供一種分布式短序列號生成方法及裝置,涉及計算機領域及金融領域。該方法包括:根據節點總數將預設的序列號重復周期劃分為多個時間區間,按時間順序為所述多個時間區間進行十進制編號得到各時間區間的區間ID;在每個時間區間內分別為各節點生成一個序列號;接收節點發送的序列號請求,并比較所述序列號請求中的序列號數目與已經生成的對應節點的序列號數目的大小;當所述序列號請求中的序列號數目小于或等于已經生成的對應節點的序列號數目時,按照所述序列號請求向所述節點發送序列號。本申請在節省序列號位數的同時,改善了序列號的生成性能,可用盡節點啟動之后至當前時間生成的所有序列號,有效應對交易高峰時的高并發現象。
技術領域
本發明涉及計算機領域及金融領域,具體涉及一種分布式短序列號生成方法及裝置。
背景技術
在分布式序列號的設計中,為了良好的支持橫向擴展,序列號通常不會與持久層相關聯,而是基于應用節點純內存生成。例如雪花算法,其原理為將序列號按二進制位分割為“毫秒時間戳|節點ID|順序位”,由于各節點ID不同,因此各節點的序列號也不會重復。對于每一節點,記錄上次生成的時間戳以判斷是否同一時間有多次請求,若是則針對每一次請求使順序位依次+1,若順序位溢出則歸0等待下一毫秒。
上述雪花算法的實現需要保證序列號位數足夠多,當位數不夠時可改進雪花算法。比如縮短節點ID與順序位,甚至可以取消順序位。
然而,取消順序位后,為了保證序列號不重復,每個節點在每個時間戳僅能生成1個序列號,也即每個節點生成序列號的速率僅為總節點數分之一,由于序列號是按時間均勻生成,而序列號請求并非均勻發生,在序列號請求的高并發時段,現有的系列號生成方法無法快速響應。因此,現有技術中,在序列號位數不夠多時,序列號的生成性能會受到嚴重影響,無法應對突如其來的高并發現象。
發明內容
為了解決現有技術中存在的問題,本申請提供一種分布式短序列號生成方法,涉及計算機領域及金融領域,該分布式短序列號生成方法包括:
根據節點總數將預設的序列號重復周期劃分為多個時間區間,按時間順序為所述多個時間區間進行十進制編號得到各時間區間的區間ID;
在每個時間區間內分別為各節點生成一個序列號;
接收節點發送的序列號請求,并比較所述序列號請求中的序列號數目與已經生成的對應節點的序列號數目的大小;
按照比較結果及序列號發送策略向對應節點發送序列號。
在一實施例中,所述按照比較結果及序列號發送策略向對應節點發送序列號,包括:
當所述序列號請求中的序列號數目小于或等于已經生成的對應節點的序列號數目時,按照所述序列號請求向所述節點發送序列號;
當所述序列號請求中的序列號數目大于已經生成的對應節點的序列號數目時,暫停接收所述節點的序列號請求,直至已經生成的對應節點的序列號數目等于所述序列號請求中的序列號數目時,按照所述序列號請求向所述節點發送序列號。
在一實施例中,所述在每個時間區間內分別為各節點生成一個序列號,包括:
根據預設的序列號生成函數在當前時間區間內分別為各節點生成一個序列號;
所述序列號生成函數為:
序列號=當前時間區間的區間ID×時間區間長度+節點ID
其中,時間區間長度等于節點總數,節點ID為各節點對應的十進制編號。
在一實施例中,所述分布式短序列號生成方法還包括:
當所述節點在當前序列號重復周期內重啟時,確定所述節點的重啟時刻所在的時間區間;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國工商銀行股份有限公司,未經中國工商銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110451781.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:業務數據測試方法、裝置及設備
- 下一篇:一種圖像生成方法、裝置及設備





