[發明專利]一種流水號生成方法和裝置在審
| 申請號: | 202011421889.2 | 申請日: | 2020-12-08 |
| 公開(公告)號: | CN112541040A | 公開(公告)日: | 2021-03-23 |
| 發明(設計)人: | 張興華;武岳 | 申請(專利權)人: | 中國銀行股份有限公司 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;G06F16/2455 |
| 代理公司: | 北京三友知識產權代理有限公司 11127 | 代理人: | 吳學鋒;呂俊剛 |
| 地址: | 100818 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 流水 生成 方法 裝置 | ||
本發明提供了一種流水號生成方法和裝置,該方法包括:讀取流水號文件和參數配置文件,確定初始流水號緩存至內存;根據參數配置文件對初始流水號進行修正,確定當前流水號,寫入內存和流水號文件;讀取內存中的當前流水號,計算下一個流水號存入內存,對流水號步長計數器累加;判斷流水號步長計數器的值是否大于參數配置文件中的步長值,若流水號步長計數器的值大于步長值,觸發持久化同步操作,將內存中的流水號寫入流水號文件。本發明的流水號分布式生成,不依賴于專用的流水號服務器,能夠在初始狀態下自動修正流水號,實現流水號順序增長,不依賴于系統IP和時間戳,不依賴于專用的存儲節點,在本節點流水號文件進行存儲。
技術領域
本發明涉及計算機數據處理技術領域,尤其涉及一種流水號生成方法和裝置。
背景技術
本部分旨在為權利要求書中陳述的本發明的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認是現有技術。
大型商業銀行結合互聯網的業務應用,銀行內部系統交易量成爆炸式的增長趨勢,關鍵幾個量大的產品系統逐漸在各個關鍵環節出現瓶頸,如流水號機制,是每個系統每個交易都必有的公共基礎機制。
常見的流水號生成方案主要有3種,其中:
方案1:數據庫/redis/zookeeper流水號生成機制;
方案2:隨機數UUID的生成,無法保證趨勢遞增;
方案3:Twitter的snowflake算法/MongoDB的objectId。
方案1缺點:由統一的服務器提供流水號的生成,集群中的節點都要訪問這個服務節點,系統訪問量大的時候,容易在流水號服務節點出現性能瓶頸,包括網絡的訪問瓶頸,且難于擴展。
方案2缺點:流水號隨機生成、沒有排序、無法保證趨勢遞增。
方案3缺點:雖然在各個節點分布式生成,但流水號生成依賴于集群節點上的時間戳和機器IP、每臺機器上如果時鐘不完全同步,流水號也會出現不是全局遞增的情況,并且有流水號的固定格式限制。
上述的常見的流水號機制,都多多少少存在一些應用的弊端,既有性能的問題、也有流水號生成的無序性、對時間或是節點IP等問題。
因此,如何提供一種新的方案,其能夠解決上述技術問題是本領域亟待解決的技術難題。
發明內容
本發明實施例提供一種流水號生成方法,流水號分布式生成,不依賴于專用的流水號服務器,能夠自動修正流水號,實現流水號順序增長,該方法包括:
讀取流水號文件和參數配置文件,確定初始流水號緩存至內存;
根據參數配置文件對初始流水號進行修正,確定當前流水號,寫入內存和流水號文件;
讀取內存中的當前流水號,計算下一個流水號存入內存,對流水號步長計數器累加;
判斷流水號步長計數器的值是否大于參數配置文件中的步長值,若流水號步長計數器的值大于步長值,觸發持久化同步操作,將內存中的流水號寫入流水號文件。
本發明實施例還提供一種流水號生成裝置,包括:
初始化模塊,用于讀取流水號文件和參數配置文件,確定初始流水號緩存至內存;
修正模塊,用于根據參數配置文件對初始流水號進行修正,確定當前流水號,寫入內存和流水號文件;
流水號計算模塊,用于讀取內存中的當前流水號,計算下一個流水號存入內存,對流水號步長計數器累加;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國銀行股份有限公司,未經中國銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011421889.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:散熱的斷路器
- 下一篇:一種客戶特性化營銷模型匹配方法和裝置





