[發明專利]可重入分布式鎖的實現方法、裝置、電子設備及存儲介質在審
| 申請號: | 202110735810.1 | 申請日: | 2021-06-30 |
| 公開(公告)號: | CN113535416A | 公開(公告)日: | 2021-10-22 |
| 發明(設計)人: | 張藝坤 | 申請(專利權)人: | 北京百度網訊科技有限公司 |
| 主分類號: | G06F9/52 | 分類號: | G06F9/52;G06F9/54;G06F16/23;G06F16/22;G06F16/25 |
| 代理公司: | 北京柏杉松知識產權代理事務所(普通合伙) 11413 | 代理人: | 馬敬;高鶯然 |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 可重入 分布式 實現 方法 裝置 電子設備 存儲 介質 | ||
本公開公開了一種可重入分布式鎖的實現方法、裝置、電子設備及存儲介質,涉及計算機技術領域,尤其涉及云計算技術領域。具體實現方案為:獲取客戶端發送的加鎖請求,加鎖請求中包含第一區域標識、第一上鎖鍵值、目標主機標識和加鎖持續時間;查詢Mysql數據庫的分布式鎖表中是否存在包含第一區域標識和第一上鎖鍵值的未過期表項;若存在,判斷未過期表項包含的主機標識是否與目標主機標識一致,若是,則基于加鎖持續時間更新未過期表項的過期時間,并通知客戶端加鎖成功。實現了高效易用的可重入分布式鎖。
技術領域
本公開涉及計算機技術領域,尤其涉及云計算技術領域。
背景技術
在分布式系統中,常常需要協調各系統的動作。如果不同的系統或同一個系統的不同主機之間共享了一個或一組資源,那么訪問這些資源的時候,往往需要互斥來防止彼此干擾,在這種情況下,便需要使用到分布式鎖。分布式鎖控制主機對資源的爭搶,保證操作正確性。
發明內容
本公開提供了一種可重入分布式鎖的實現方法、裝置、電子設備及存儲介質。
根據本公開的一方面,提供了一種可重入分布式鎖的實現方法,應用于基于spring框架構建的分布式系統中的服務器,所述分布式系統還包括Mysql數據庫和分布于多個區域的多個主機的客戶端,所述方法包括:
獲取客戶端發送的加鎖請求,所述加鎖請求中包含第一區域標識、第一上鎖鍵值、目標主機標識和加鎖持續時間;
查詢所述Mysql數據庫的分布式鎖表中是否存在包含所述第一區域標識和所述第一上鎖鍵值的未過期表項;
若存在,判斷所述未過期表項包含的主機標識是否與所述目標主機標識一致,若是,則基于所述加鎖持續時間更新所述未過期表項的過期時間,并通知所述客戶端加鎖成功。
根據本公開的另一方面,提供了一種可重入分布式鎖的實現裝置,應用于基于spring框架構建的分布式系統中的服務器,所述分布式系統還包括Mysql數據庫和分布于多個區域的多個主機的客戶端,所述裝置包括:
第一獲取模塊,用于獲取客戶端發送的加鎖請求,所述加鎖請求中包含第一區域標識、第一上鎖鍵值、目標主機標識和加鎖持續時間;
第一查詢模塊,用于查詢所述Mysql數據庫的分布式鎖表中是否存在包含所述第一區域標識和所述第一上鎖鍵值的未過期表項;若存在,觸發判斷模塊;
所述判斷模塊,用于判斷所述未過期表項包含的主機標識是否與所述目標主機標識一致,若是,觸發加鎖模塊;
所述加鎖模塊,用于基于所述加鎖持續時間更新所述未過期表項的過期時間,并通知所述客戶端加鎖成功。
根據本公開的又一方面,提供了一種電子設備,包括:
至少一個處理器;以及
與所述至少一個處理器通信連接的存儲器;其中,
所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行可重入分布式鎖的實現方法。
根據本公開的又一方面,提供了一種存儲有計算機指令的非瞬時計算機可讀存儲介質,其中,所述計算機指令用于使所述計算機執行可重入分布式鎖的實現方法。
根據本公開的又一方面,提供了一種計算機程序產品,包括計算機程序,所述計算機程序在被處理器執行時實現可重入分布式鎖的實現方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京百度網訊科技有限公司,未經北京百度網訊科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110735810.1/2.html,轉載請聲明來源鉆瓜專利網。





