[發(fā)明專利]標(biāo)識號生成方法、裝置、計算機(jī)設(shè)備及存儲介質(zhì)有效
| 申請?zhí)枺?/td> | 202010102807.1 | 申請日: | 2020-02-19 |
| 公開(公告)號: | CN111291424B | 公開(公告)日: | 2023-03-24 |
| 發(fā)明(設(shè)計)人: | 史先澳;婁景軍 | 申請(專利權(quán))人: | 望海康信(北京)科技股份公司 |
| 主分類號: | G06F21/73 | 分類號: | G06F21/73 |
| 代理公司: | 北京市立方律師事務(wù)所 11330 | 代理人: | 張筱寧 |
| 地址: | 100176 北京市大興區(qū)北京經(jīng)濟(jì)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 標(biāo)識 生成 方法 裝置 計算機(jī) 設(shè)備 存儲 介質(zhì) | ||
本發(fā)明實施例公開了一種標(biāo)識號生成方法、裝置、計算機(jī)設(shè)備及存儲介質(zhì),包括下述步驟:獲取歷史隊列信息,其中,所述歷史隊列信息用于記錄已生成標(biāo)識號的時間戳編碼與序列碼;根據(jù)所述歷史隊列信息確定預(yù)設(shè)的第一標(biāo)識號是否符合預(yù)設(shè)的重復(fù)條件,其中,所述第一標(biāo)識號為時間回?fù)苌傻臉?biāo)識號;當(dāng)所述第一標(biāo)識號符合所述重復(fù)條件時,根據(jù)所述歷史隊列信息生成第二標(biāo)識號。通過設(shè)置歷史隊列信息記錄使用過的時間戳和序列碼,當(dāng)發(fā)生時間回?fù)墚a(chǎn)生標(biāo)識號時以歷史隊列為依據(jù)確定標(biāo)識號是否出現(xiàn)重復(fù),當(dāng)標(biāo)識號重復(fù)時以歷史隊列信息為依據(jù)利用之前未被使用的序列碼生成新的標(biāo)識號,有效確保了生成的標(biāo)識號不重復(fù)。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)應(yīng)用技術(shù)領(lǐng)域,特別是涉及一種標(biāo)識號生成方法、裝置、計算機(jī)設(shè)備及存儲介質(zhì)。
背景技術(shù)
在分布式系統(tǒng)中,經(jīng)常需要使用全局唯一ID(GUID)定義對應(yīng)的數(shù)據(jù)。為了滿足Twitter每秒上萬條消息的請求,每條消息都必須分配一條唯一的ID,這些ID還需要一些大致的順序(方便客戶端排序),并且在分布式系統(tǒng)中不同機(jī)器產(chǎn)生的ID必須不同,對此,Twitter研發(fā)了snowflake生成ID方案.其核心思想是:產(chǎn)生一個long型的ID,使用其中41位(bit)作為時間戳(單位:毫秒),10bit作為機(jī)器編號,12bit作為序列碼。除了最高位(bit)標(biāo)記為不可用以外,其余三組bit占位均可浮動,應(yīng)具體的業(yè)務(wù)需求而定。默認(rèn)情況下41bit的時間戳可以支持該算法使用69.7年,10bit的工作機(jī)器id可以支持1024臺機(jī)器,序列碼支持1毫秒產(chǎn)生4096個序列id。
在分布式環(huán)境下,每臺機(jī)器上的時鐘不可能完全同步。由于機(jī)器時間不一致,需要同步各個服務(wù)器的時間,可能導(dǎo)致服務(wù)器時間回退。如果恰巧回退前生成過一些ID,而時間回退后,生成的ID就有可能重復(fù)。
發(fā)明內(nèi)容
本發(fā)明實施例能夠提供一種避免時間回?fù)軐?dǎo)致ID重復(fù)的標(biāo)識號生成方法、裝置、計算機(jī)設(shè)備及存儲介質(zhì)。
為解決上述技術(shù)問題,本發(fā)明創(chuàng)造的實施例采用的一個技術(shù)方案是:提供一種標(biāo)識號生成方法,包括:
獲取歷史隊列信息,其中,所述歷史隊列信息用于記錄已生成標(biāo)識號的時間戳編碼與序列碼;
根據(jù)所述歷史隊列信息確定預(yù)設(shè)的第一標(biāo)識號是否符合預(yù)設(shè)的重復(fù)條件,其中,所述第一標(biāo)識號為時間回?fù)苌傻臉?biāo)識號;
當(dāng)所述第一標(biāo)識號符合所述重復(fù)條件時,根據(jù)所述歷史隊列信息生成第二標(biāo)識號。
可選地,所述當(dāng)所述第一標(biāo)識號符合所述重復(fù)條件時,根據(jù)所述歷史隊列信息生成第二標(biāo)識號的步驟,包括:
獲取所述第一標(biāo)識號的時間信息,所述時間信息包括所述第一標(biāo)識號的時間戳編碼;
在所述歷史隊列信息中查找與所述第一標(biāo)識號的時間戳編碼具有映射關(guān)系的第一序列碼;
根據(jù)所述第一序列碼生成所述第二標(biāo)識號。
可選地,所述根據(jù)所述第一序列碼生成所述第二標(biāo)識號的步驟,包括:
根據(jù)預(yù)設(shè)的自增規(guī)則對所述第一序列碼進(jìn)行自增處理以生成增值序列碼;
根據(jù)增值序列碼確定第二序列碼;
根據(jù)所述第二序列碼生成所述第二標(biāo)識號。
可選地,所述根據(jù)增值序列碼確定第二序列碼的步驟,包括:
當(dāng)所述增值序列碼大于預(yù)設(shè)的第一序列閾值時,根據(jù)所述歷史隊列信息中所述第一標(biāo)識號的時間戳編碼的下一個時間戳編碼對應(yīng)的序列碼生成所述第二序列碼;
當(dāng)所述增值序列碼小于或等于所述第一序列閾值時,確定所述增值序列碼為所述第二序列碼。
可選地,所述根據(jù)所述歷史隊列信息確定預(yù)設(shè)的第一標(biāo)識號是否符合預(yù)設(shè)的重復(fù)條件的步驟,包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于望海康信(北京)科技股份公司,未經(jīng)望海康信(北京)科技股份公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/202010102807.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計算機(jī)或計算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計算機(jī)系統(tǒng)或計算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程





