[發(fā)明專利]基于分布式系統(tǒng)的標(biāo)識(shí)生成方法、系統(tǒng)、設(shè)備及介質(zhì)在審
| 申請(qǐng)?zhí)枺?/td> | 202011122844.5 | 申請(qǐng)日: | 2020-10-20 |
| 公開(公告)號(hào): | CN112199923A | 公開(公告)日: | 2021-01-08 |
| 發(fā)明(設(shè)計(jì))人: | 唐明東 | 申請(qǐng)(專利權(quán))人: | 重慶紫光華山智安科技有限公司 |
| 主分類號(hào): | G06F40/126 | 分類號(hào): | G06F40/126 |
| 代理公司: | 上海光華專利事務(wù)所(普通合伙) 31219 | 代理人: | 代玲 |
| 地址: | 400700 重慶市*** | 國(guó)省代碼: | 重慶;50 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 分布式 系統(tǒng) 標(biāo)識(shí) 生成 方法 設(shè)備 介質(zhì) | ||
本申請(qǐng)?zhí)峁┮环N基于分布式系統(tǒng)的標(biāo)識(shí)生成方法、系統(tǒng)、設(shè)備及介質(zhì),該方法包括:獲取一個(gè)或多個(gè)標(biāo)識(shí)生成請(qǐng)求,所述標(biāo)識(shí)生成請(qǐng)求包括業(yè)務(wù)KEY值;檢測(cè)當(dāng)前緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量是否滿足標(biāo)識(shí)生成請(qǐng)求的要求;當(dāng)所述緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量滿足標(biāo)識(shí)生成請(qǐng)求的要求時(shí),則返回所述標(biāo)識(shí)給請(qǐng)求方;當(dāng)所述緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量不滿足標(biāo)識(shí)生成請(qǐng)求的要求時(shí),則調(diào)用Redis INCR指令生成標(biāo)識(shí)返回至緩存以滿足所述標(biāo)識(shí)生成請(qǐng)求;利用所述Redis INCR獲取序列的最大值,反向計(jì)算起始值依次遞增或遞減生成標(biāo)識(shí),所述標(biāo)識(shí)的生成數(shù)量根據(jù)所述緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量與標(biāo)識(shí)生成請(qǐng)求的要求確定。本申請(qǐng)?zhí)岣吡藰?biāo)識(shí)生成的效率;依次產(chǎn)生的序列ID避免了ID重復(fù)現(xiàn)象,有利于于后續(xù)擴(kuò)容。
技術(shù)領(lǐng)域
本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,特別是涉及一種基于分布式系統(tǒng)的標(biāo)識(shí)生成方法、系統(tǒng)、設(shè)備及介質(zhì)。
背景技術(shù)
在互聯(lián)網(wǎng)和軟件開發(fā)的一些場(chǎng)景中,所有的數(shù)據(jù)對(duì)象都需要一個(gè)唯一標(biāo)識(shí)(Identification,ID),用來生成該ID的服務(wù)被稱為ID生成器(或者發(fā)號(hào)器)。ID生成器的包括為數(shù)據(jù)對(duì)象或者其他服務(wù)發(fā)放全局唯一的ID。數(shù)據(jù)對(duì)象被分配了ID之后才能被存儲(chǔ)和使用。
現(xiàn)有的ID生成器基于數(shù)據(jù)庫(kù)的自增序列或者UUID(通用唯一識(shí)別碼)來保證數(shù)據(jù)的唯一性。然而,當(dāng)數(shù)據(jù)達(dá)到一定量級(jí)后,系統(tǒng)將升級(jí)為分布式集群架構(gòu),一方面,如果繼續(xù)采用自增序列的方式,會(huì)限制數(shù)據(jù)庫(kù)節(jié)點(diǎn)擴(kuò)容,影響ID的唯一性;另一方面,如果采用UUID方式由于其生成的ID都是無序的字符串,導(dǎo)致查詢存儲(chǔ)效率差,可讀性差,無法保證趨勢(shì)遞增,也無法體現(xiàn)業(yè)務(wù)順序;而如果采用Twitter開源的snowflake算法,由于其強(qiáng)依賴于機(jī)器時(shí)鐘,當(dāng)工作設(shè)備出現(xiàn)時(shí)鐘回?fù)芮闆r時(shí),生成ID的時(shí)間戳也會(huì)隨之回退,如果仍按照回退后的時(shí)間戳生成ID,則可能會(huì)出現(xiàn)ID重復(fù)問題;同時(shí),多節(jié)點(diǎn)同一時(shí)間產(chǎn)生的ID差值較大,導(dǎo)致無法正常排序,容易造成ID資源的極大浪費(fèi)。
發(fā)明內(nèi)容
鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本申請(qǐng)的目的在于提供一種基于分布式系統(tǒng)的標(biāo)識(shí)生成方法、系統(tǒng)、設(shè)備及介質(zhì),用于解決現(xiàn)有技術(shù)中標(biāo)識(shí)生成容易引起的ID重復(fù)以及擴(kuò)展不易的問題。
為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本申請(qǐng)?zhí)峁┮环N基于分布式系統(tǒng)的標(biāo)識(shí)生成方法,包括:
獲取一個(gè)或多個(gè)標(biāo)識(shí)生成請(qǐng)求,其中,所述標(biāo)識(shí)生成請(qǐng)求包括業(yè)務(wù)KEY值;
檢測(cè)當(dāng)前緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量是否滿足標(biāo)識(shí)生成請(qǐng)求的要求;
當(dāng)所述緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量滿足標(biāo)識(shí)生成請(qǐng)求的要求時(shí),則返回所述標(biāo)識(shí)給請(qǐng)求方;
當(dāng)所述緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量不滿足標(biāo)識(shí)生成請(qǐng)求的要求時(shí),則調(diào)用Redis INCR指令生成標(biāo)識(shí)返回至緩存以滿足所述標(biāo)識(shí)生成請(qǐng)求;其中,利用所述Redis INCR獲取序列的最大值,反向計(jì)算起始值依次遞增或遞減生成標(biāo)識(shí),所述標(biāo)識(shí)的生成數(shù)量根據(jù)所述緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量與標(biāo)識(shí)生成請(qǐng)求的要求確定。
在本申請(qǐng)的另一目的在于提供一種基于分布式系統(tǒng)的標(biāo)識(shí)生成系統(tǒng),包括:
獲取模塊,用于獲取一個(gè)或多個(gè)標(biāo)識(shí)生成請(qǐng)求,其中,所述標(biāo)識(shí)生成請(qǐng)求包括業(yè)務(wù)KEY值;
檢測(cè)模塊,用于檢測(cè)當(dāng)前緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量是否滿足標(biāo)識(shí)生成請(qǐng)求的要求;
第一標(biāo)識(shí)生成模塊,用于當(dāng)所述緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量滿足標(biāo)識(shí)生成請(qǐng)求的要求時(shí),則返回所述標(biāo)識(shí)給請(qǐng)求方;
第二標(biāo)識(shí)生成模塊,用于當(dāng)所述緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量不滿足標(biāo)識(shí)生成請(qǐng)求的要求時(shí),則調(diào)用Redis INCR指令生成標(biāo)識(shí)返回至緩存以滿足所述標(biāo)識(shí)生成請(qǐng)求;其中,利用所述Redis INCR獲取序列的最大值,反向計(jì)算起始值依次遞增或遞減生成標(biāo)識(shí),所述標(biāo)識(shí)的生成數(shù)量根據(jù)所述緩存內(nèi)剩余的標(biāo)識(shí)數(shù)量與標(biāo)識(shí)生成請(qǐng)求的要求確定。
在本申請(qǐng)的另一目的在于提供一種電子設(shè)備,包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于重慶紫光華山智安科技有限公司,未經(jīng)重慶紫光華山智安科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011122844.5/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種高效散熱的顯示屏模組
- 下一篇:一種可收集煙灰的抽煙器及使用方法





