[發(fā)明專利]一種分布式系統(tǒng)唯一流水號生成的方法在審
| 申請?zhí)枺?/td> | 202010760024.2 | 申請日: | 2020-07-31 |
| 公開(公告)號: | CN111930765A | 公開(公告)日: | 2020-11-13 |
| 發(fā)明(設(shè)計)人: | 寧華雄;江海龍;吳海波;郭倩 | 申請(專利權(quán))人: | 銀盛支付服務(wù)股份有限公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/2458;G06F16/27 |
| 代理公司: | 深圳市深可信專利代理有限公司 44599 | 代理人: | 萬永泉 |
| 地址: | 518000 廣東省深圳市龍華*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 分布式 系統(tǒng) 唯一 流水 生成 方法 | ||
本發(fā)明公開了一種分布式系統(tǒng)唯一流水號生成的方法,包括以下步驟:S1、調(diào)整雪花算法中默認固定的開始時間戳為當前時間戳,增加生成唯一id的數(shù)量;S2、新增時間戳回退判斷模塊;S3、將獲取唯一id的方法鎖修改為代碼塊鎖;S4、對服務(wù)運行情況與服務(wù)器異常情況進行實時監(jiān)控;S5、使用單例方式實現(xiàn)單一對象實例提供服務(wù);S6、調(diào)整算法中工作id與機器id通過多節(jié)點部署形成一個集群服務(wù);S7、將生成的唯一id與時間和業(yè)務(wù)信息進行組合。使用雪花算法生成自增序列將不再依賴數(shù)據(jù)庫的性能,直接通過算法服務(wù)的實現(xiàn)序列的遞增,提高了服務(wù)的穩(wěn)定性;在高并發(fā)的測試對比下,通過算法服務(wù)生成序比獲取數(shù)據(jù)庫序列在性能上普遍更優(yōu)。
技術(shù)領(lǐng)域
本發(fā)明涉及分布式系統(tǒng)領(lǐng)域,特別涉及一種分布式系統(tǒng)唯一流水號生成的方法。
背景技術(shù)
目前針對公司的交易流水信息在數(shù)據(jù)庫中保存的唯一性,我們會給每一筆交易流水信息生成一個唯一的流水號與交易信息進行綁定,便于交易信息的定位與查找。分布式交易系統(tǒng)一般是采用簡單的交易信息、交易時間與數(shù)據(jù)庫序列的拼接方式。隨著交易量的不斷突破,依賴數(shù)據(jù)庫中各種資源與性能的數(shù)據(jù)庫序列的生成將成為未來數(shù)據(jù)量遞增的主要瓶頸。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供一種分布式系統(tǒng)唯一流水號生成的方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種分布式系統(tǒng)唯一流水號生成的方法,包括:
S1、調(diào)整雪花算法中默認固定的開始時間戳為當前時間戳,增加生成唯一id的數(shù)量;
S2、新增時間戳回退判斷模塊;
S3、將獲取唯一id的方法鎖修改為代碼塊鎖;
S4、對服務(wù)運行情況與服務(wù)器異常情況進行實時監(jiān)控;
S5、使用單例方式實現(xiàn)單一對象實例提供服務(wù);
S6、調(diào)整算法中工作id與機器id通過多節(jié)點部署形成一個集群服務(wù);
S7、將生成的唯一id與時間和業(yè)務(wù)信息進行組合。
進一步地,所述步驟S1中:通過與當前時間戳差生成的對應(yīng)差值并從較小的數(shù)值開始使用,增加生成唯一id的數(shù)量。
進一步地,所述步驟S2中:如果服務(wù)器時間調(diào)整導(dǎo)致時間戳回退,則等待時間重新追上最新時間后重新獲取時間戳生成唯一id。
進一步地,所述步驟S4包括:經(jīng)過固定次數(shù)地重新獲取時間戳失敗后,將直接把錯誤異常拋出,結(jié)合系統(tǒng)業(yè)務(wù)異常的捕獲。
本發(fā)明的有益效果為:
1、使用雪花算法生成自增序列將不再依賴數(shù)據(jù)庫的性能,直接通過算法服務(wù)的實現(xiàn)序列的遞增,提高了服務(wù)的穩(wěn)定性;
2、在高并發(fā)的測試對比下,通過算法服務(wù)生成序比獲取數(shù)據(jù)庫序列在性能上普遍更優(yōu);
3、算法服務(wù)生成序列的上限也有很大幅度的提升,通過空間資源換取時間與性能性能,提高性能瓶頸,并且不會產(chǎn)生唯一性的沖突;
4、服務(wù)獨立,不依賴第三方資源,部署簡單,對比其他方案,比如:redis,耗費的資源更少;
5、由于數(shù)據(jù)庫分庫無法使用自增序列,統(tǒng)一為分布式系統(tǒng)提供一個全局的唯一的生成規(guī)則。
附圖說明
下面結(jié)合附圖和實施例對本發(fā)明進一步說明。
圖1是雪花算法基本原理圖;
圖2是本發(fā)明一種分布式系統(tǒng)唯一流水號生成的方法流程圖。
具體實施方式
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于銀盛支付服務(wù)股份有限公司,未經(jīng)銀盛支付服務(wù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010760024.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





