一種多Region云架構(gòu)的分布式ID生成方法

基本信息

申請(qǐng)?zhí)?/td> CN202110745310.6 申請(qǐng)日 -
公開(kāi)(公告)號(hào) CN113656491A 公開(kāi)(公告)日 2021-11-16
申請(qǐng)公布號(hào) CN113656491A 申請(qǐng)公布日 2021-11-16
分類(lèi)號(hào) G06F16/27(2019.01)I 分類(lèi) 計(jì)算;推算;計(jì)數(shù);
發(fā)明人 阮文龍 申請(qǐng)(專(zhuān)利權(quán))人 紫光云技術(shù)有限公司
代理機(jī)構(gòu) 天津?yàn)I海科緯知識(shí)產(chǎn)權(quán)代理有限公司 代理人 薛萌萌
地址 300459天津市濱海新區(qū)高新區(qū)塘沽海洋科技園匯祥道399號(hào)6號(hào)樓
法律狀態(tài) -

摘要

摘要 本發(fā)明提供了一種多Region云架構(gòu)的分布式ID生成方法,通過(guò)當(dāng)前時(shí)間戳減固定開(kāi)始時(shí)間戳的差值生成時(shí)間戳;從Region模塊的環(huán)境變量中獲取的RegionID;通過(guò)多Region云架構(gòu)獲取的ReplicationID;生成的SequenceID,每個(gè)microserve副本啟動(dòng)的時(shí)候,會(huì)生成一個(gè)存儲(chǔ)鍵值隊(duì)Map,當(dāng)有創(chuàng)建分布式ID的請(qǐng)求過(guò)來(lái)的時(shí)候,首先去Map中獲取是否有該毫秒內(nèi)的分布式ID,如果有,從隊(duì)列里取一個(gè)返回,如果沒(méi)有生成所有的并保存到Map中;如果有請(qǐng)求過(guò)來(lái),回調(diào)用一個(gè)異步線程,清理Map中該毫秒之前的數(shù)據(jù);TimeID、RegionID、ReplicationID、SequenceID依次組合成分布式ID。本發(fā)明所述的保證ID全局唯一性,通過(guò)多種ID確保不出現(xiàn)重復(fù)的ID號(hào),且時(shí)間戳、同一時(shí)間戳內(nèi)的序列ID均呈單調(diào)遞增,并通過(guò)多種ID組合保證ID無(wú)規(guī)則、不規(guī)則,安全性強(qiáng)。