[發明專利]一種分布式全局ID生成方法及其裝置在審
| 申請號: | 201910022807.8 | 申請日: | 2019-01-10 |
| 公開(公告)號: | CN109783126A | 公開(公告)日: | 2019-05-21 |
| 發明(設計)人: | 江卓浩;黃龍程;盧歆翮;陳漢輝;李茂;吳海權;陳鎮秋;楊鍵;陳晨 | 申請(專利權)人: | 珠海金山網絡游戲科技有限公司;廣州西山居世游網絡科技有限公司 |
| 主分類號: | G06F8/70 | 分類號: | G06F8/70 |
| 代理公司: | 廣州嘉權專利商標事務所有限公司 44205 | 代理人: | 俞梁清 |
| 地址: | 519000 廣東省珠海市*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 全局 獲取模塊 判定模塊 業務系統 上傳 判定 工作效率 獲取請求 接收模塊 接收指令 快速接入 生成模塊 生成請求 提取模塊 統一管理 序列信息 業務場景 端口碼 時間戳 序列碼 可讀 后臺 外部 保證 | ||
本發明涉及一種分布式全局ID生成方法,包括以下步驟:S1、接收指令;S2、提取本地時間戳;S3、判定是否已存在對應節點;S4、獲取本地序列碼;S5、獲取請求方IP地址和端口碼;S6、生成請求序列信息并進行判定;S7、生成全局ID;S8、上傳全局ID至后臺;一種分布式全局ID生成裝置,包括接收模塊、提取模塊、第一判定模塊、第一獲取模塊、第二獲取模塊、第二判定模塊、生成模塊以及上傳模塊。本發明可以實現統一管理生成分布式全局ID,保證了高效、可讀、有序且單一等優勢,外部業務系統通過HTTP接口即可快速接入,適用于不同的業務場景,可以使業務系統專注于自身業務工作,有效提高了工作效率。
技術領域
本發明涉及一種分布式全局ID生成方法及其裝置,屬于計算機技術領域。
背景技術
隨著互聯網技術的發展,人們在不同業務場景下的產生的進程越來越頻繁,如何對這些進程進行有效的管理是急需解決的問題。目前主要采用的解決方案有兩種,第一種是使用數據庫自增序列,這種方式有著數據連續性、唯一性、代碼入侵少以及使用簡單等優點但存在需要部署獨立數據庫實例、可見的性能瓶頸且易發生單點故障等缺點;第二種是使用UUID,它的優勢在于ID生成由本地完成,性能好,但也存在ID過長、存儲冗余、ID無序不可讀且作為主鍵索引性能低下等缺點。
發明內容
針對現有技術的不足,本發明提供了一種分布式全局ID生成方法,包括以下步驟:
S1、接收全局ID生成指令;
S2、提取設備申請全局ID時的本地時間戳;
S3、判定設備ID是否已存在對應節點;
S4、基于判定結果采取對應方式獲取本地序列碼;
S5、獲取請求方IP地址和端口碼;
S6、基于請求方IP地址和端口碼生成請求序列信息并進行判定;
S7、基于本地時間戳、設備ID以及本地序列碼生成全局ID;
S8、上傳全局ID至后臺。
進一步,所述全局ID采用64位方式存儲,其中最高位不使用且始終為0。
進一步,所述設備ID由10bit組成,其分配通過Zookeeper進行管理,所述Zookeeper是一種開源的分布式應用程序協調服務。
進一步,所述本地時間戳由41位bit組成,最小單位為毫秒。
進一步,步驟S4中的判定結果包括已存在、未存在對應節點;若判定結果為已存在對應節點,系統自動獲取設備ID對應的本地序列碼;若判定結果為未存在對應節點,系統初始化當前節點并獲取本地序列碼。
進一步,若同一設備在相同時間接入多于一個節點,不同節點依次在已生成的最大本地序列碼數值上加一生成新的序列碼。
進一步,一個節點對應一個進程,系統支持同一設備在相同時間最多對應4096個進程。
進一步,所述本地序列碼由12bit組成。
進一步,步驟S6中的判定包括若判定結果為不通過,則終止本次指令生成操作;若判定結果為通過,則進行下一步。
一種分布式全局ID生成裝置,包括:
接收模塊,用于接收全局ID生成指令;
提取模塊,用于提取設備申請全局ID時的本地時間戳;
第一判定模塊,用于判定設備ID是否已存在對應節點;
第一獲取模塊,用于通過判定結果采取對應方式獲取本地序列碼;
第二獲取模塊,用于獲取請求方IP地址和端口碼;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于珠海金山網絡游戲科技有限公司;廣州西山居世游網絡科技有限公司,未經珠海金山網絡游戲科技有限公司;廣州西山居世游網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910022807.8/2.html,轉載請聲明來源鉆瓜專利網。





