[發明專利]基于Redis的分布式ID生成方法、裝置及介質在審
| 申請號: | 202111287700.X | 申請日: | 2021-11-02 |
| 公開(公告)號: | CN114153893A | 公開(公告)日: | 2022-03-08 |
| 發明(設計)人: | 尚永強 | 申請(專利權)人: | 浪潮軟件股份有限公司 |
| 主分類號: | G06F16/2458 | 分類號: | G06F16/2458;G06F16/23 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 潘悅梅 |
| 地址: | 271000 山東省*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 redis 分布式 id 生成 方法 裝置 介質 | ||
1.基于Redis的分布式ID生成方法,其特征在于對于每個應用節點,通過如下步驟分配workID:
應用節點定時啟動時,如果所述應用節點未被分配workID,執行ID分配步驟為所述應用節點分配workID;
如果所述應用節點已被分配workID,基于worID判斷Redis中存儲的value值是否與所述應用節點的value值一致,如果一致,根據需要選擇性地更新所述應用節點的過期時間,如果不一致,執行ID分配步驟重新為所述應用節點分配workID;
所述workID分配步驟包括:從Redis中獲取空閑列表,并遍歷空閑列表查找未被其它應用節點占用的空閑workID,將所述空閑workID分配給所述應用節點作為key,將所述應用節點的IP和端口號作為value存儲至Redis,并為所述應用節點的workID設置過期時間;
對于超過過期時間的應用節點,將所述應用節點的workID釋放并回收,重新生成空閑列表并存儲至Redis。
2.根據權利要求1所述的基于Redis的分布式ID生成方法,其特征在于所述workID分配步驟中,從Redis中獲取空閑列表,并遍歷空閑列表查找未被其它應用節點占用的空閑workID,如果空閑列表所有應用節點均已被其它應用節點占用,通過雪花算法重新為所述Redis配置workID。
3.根據權利要求1所述的基于Redis的分布式ID生成方法,其特征在于所述workID分配步驟中,如果Redis中不存在空閑列表,通過所述應用節點生成一個空閑列表并存儲至Redis中,通過雪花算法為所述Redis配置workID。
4.根據權利要求1所述的基于Redis的分布式ID生成方法,其特征在于將所述應用節點的IP和端口號作為value存儲至Redis時,所述value格式為:IP:端口號。
5.根據權利要求1所述的基于Redis的分布式ID生成方法,其特征在于所述應用節點定時啟動任務的周期間隔小于其workID在Redis的過期時間。
6.根據權利要求1所述的基于Redis的分布式ID生成方法,其特征在于監控所述應用節點占用workID對應的機器列表中應用節點的個數以及對應的空閑列表中空閑workID的個數,如果應用節點的個數得到最大數的workID,通過雪花算法重新為所述空閑列表配置workID。
7.裝置,其特征在于,包括:至少一個存儲器和至少一個處理器;
所述至少一個存儲器,用于存儲機器可讀程序;
所述至少一個處理器,用于調用所述機器可讀程序,執行權利要求1至6中任一所述的方法。
8.介質,為計算機可讀介質,其特征在于,所述計算機可讀介質上存儲有計算機指令,所述計算機指令在被處理器執行時,使所述處理器執行權利要求1至6任一所述的方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮軟件股份有限公司,未經浪潮軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111287700.X/1.html,轉載請聲明來源鉆瓜專利網。





