[發(fā)明專利]可重入分布式鎖的實(shí)現(xiàn)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)在審
| 申請(qǐng)?zhí)枺?/td> | 202110735810.1 | 申請(qǐng)日: | 2021-06-30 |
| 公開(kāi)(公告)號(hào): | CN113535416A | 公開(kāi)(公告)日: | 2021-10-22 |
| 發(fā)明(設(shè)計(jì))人: | 張藝?yán)?/a> | 申請(qǐng)(專利權(quán))人: | 北京百度網(wǎng)訊科技有限公司 |
| 主分類(lèi)號(hào): | G06F9/52 | 分類(lèi)號(hào): | G06F9/52;G06F9/54;G06F16/23;G06F16/22;G06F16/25 |
| 代理公司: | 北京柏杉松知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11413 | 代理人: | 馬敬;高鶯然 |
| 地址: | 100085 北京市*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 可重入 分布式 實(shí)現(xiàn) 方法 裝置 電子設(shè)備 存儲(chǔ) 介質(zhì) | ||
1.一種可重入分布式鎖的實(shí)現(xiàn)方法,應(yīng)用于基于spring框架構(gòu)建的分布式系統(tǒng)中的服務(wù)器,所述分布式系統(tǒng)還包括Mysql數(shù)據(jù)庫(kù)和分布于多個(gè)區(qū)域的多個(gè)主機(jī)的客戶端,所述方法包括:
獲取客戶端發(fā)送的加鎖請(qǐng)求,所述加鎖請(qǐng)求中包含第一區(qū)域標(biāo)識(shí)、第一上鎖鍵值、目標(biāo)主機(jī)標(biāo)識(shí)和加鎖持續(xù)時(shí)間;
查詢所述Mysql數(shù)據(jù)庫(kù)的分布式鎖表中是否存在包含所述第一區(qū)域標(biāo)識(shí)和所述第一上鎖鍵值的未過(guò)期表項(xiàng);
若存在,判斷所述未過(guò)期表項(xiàng)包含的主機(jī)標(biāo)識(shí)是否與所述目標(biāo)主機(jī)標(biāo)識(shí)一致,若是,則基于所述加鎖持續(xù)時(shí)間更新所述未過(guò)期表項(xiàng)的過(guò)期時(shí)間,并通知所述客戶端加鎖成功。
2.根據(jù)權(quán)利要求1所述的方法,還包括:
若所述未過(guò)期表項(xiàng)包含的主機(jī)標(biāo)識(shí)與所述目標(biāo)主機(jī)標(biāo)識(shí)不一致,則通知所述客戶端加鎖失敗。
3.根據(jù)權(quán)利要求1所述的方法,還包括:
若所述Mysql數(shù)據(jù)庫(kù)的分布式鎖表中不存在包含所述第一區(qū)域標(biāo)識(shí)和所述第一上鎖鍵值的未過(guò)期表項(xiàng),向所述Mysql數(shù)據(jù)庫(kù)的分布式鎖表中添加包含所述第一區(qū)域標(biāo)識(shí)、第一上鎖鍵值、目標(biāo)主機(jī)標(biāo)識(shí)和加鎖持續(xù)時(shí)間的表項(xiàng);若成功添加該表項(xiàng),則通知所述客戶端加鎖成功;若未成功添加該表項(xiàng),則通知所述客戶端加鎖失敗。
4.根據(jù)權(quán)利要求1所述的方法,還包括:
獲取客戶端發(fā)送的解鎖請(qǐng)求,所述解鎖請(qǐng)求中包含第二區(qū)域標(biāo)識(shí)和第二上鎖鍵值;
查詢所述Mysql數(shù)據(jù)庫(kù)的分布式鎖表中包含所述第二區(qū)域標(biāo)識(shí)和所述第二上鎖鍵值的表項(xiàng),刪除該表項(xiàng)。
5.根據(jù)權(quán)利要求1所述的方法,還包括:
當(dāng)達(dá)到定時(shí)時(shí)刻,查詢所述Mysql數(shù)據(jù)庫(kù)的分布式鎖表中過(guò)期時(shí)間小于所述定時(shí)時(shí)刻的表項(xiàng)并刪除;其中,所述定時(shí)時(shí)刻是基于預(yù)先設(shè)置的定時(shí)清理任務(wù)確定的。
6.一種可重入分布式鎖的實(shí)現(xiàn)裝置,應(yīng)用于基于spring框架構(gòu)建的分布式系統(tǒng)中的服務(wù)器,所述分布式系統(tǒng)還包括Mysql數(shù)據(jù)庫(kù)和分布于多個(gè)區(qū)域的多個(gè)主機(jī)的客戶端,所述裝置包括:
第一獲取模塊,用于獲取客戶端發(fā)送的加鎖請(qǐng)求,所述加鎖請(qǐng)求中包含第一區(qū)域標(biāo)識(shí)、第一上鎖鍵值、目標(biāo)主機(jī)標(biāo)識(shí)和加鎖持續(xù)時(shí)間;
第一查詢模塊,用于查詢所述Mysql數(shù)據(jù)庫(kù)的分布式鎖表中是否存在包含所述第一區(qū)域標(biāo)識(shí)和所述第一上鎖鍵值的未過(guò)期表項(xiàng);若存在,觸發(fā)判斷模塊;
所述判斷模塊,用于判斷所述未過(guò)期表項(xiàng)包含的主機(jī)標(biāo)識(shí)是否與所述目標(biāo)主機(jī)標(biāo)識(shí)一致,若是,觸發(fā)加鎖模塊;
所述加鎖模塊,用于基于所述加鎖持續(xù)時(shí)間更新所述未過(guò)期表項(xiàng)的過(guò)期時(shí)間,并通知所述客戶端加鎖成功。
7.根據(jù)權(quán)利要求6所述的裝置,若所述判斷模塊的判斷結(jié)果為否,觸發(fā)加鎖失敗模塊;
所述加鎖失敗模塊,用于通知所述客戶端加鎖失敗。
8.根據(jù)權(quán)利要求6所述的裝置,若所述Mysql數(shù)據(jù)庫(kù)的分布式鎖表中不存在包含所述第一區(qū)域標(biāo)識(shí)和所述第一上鎖鍵值的未過(guò)期表項(xiàng),觸發(fā)添加模塊;
所述添加模塊,用于向所述Mysql數(shù)據(jù)庫(kù)的分布式鎖表中添加包含所述第一區(qū)域標(biāo)識(shí)、第一上鎖鍵值、目標(biāo)主機(jī)標(biāo)識(shí)和加鎖持續(xù)時(shí)間的表項(xiàng);若成功添加該表項(xiàng),則通知所述客戶端加鎖成功;若未成功添加該表項(xiàng),則通知所述客戶端加鎖失敗。
9.根據(jù)權(quán)利要求6所述的裝置,還包括:
第二獲取模塊,用于獲取客戶端發(fā)送的解鎖請(qǐng)求,所述解鎖請(qǐng)求中包含第二區(qū)域標(biāo)識(shí)和第二上鎖鍵值;
第二查詢模塊,用于查詢所述Mysql數(shù)據(jù)庫(kù)的分布式鎖表中包含所述第二區(qū)域標(biāo)識(shí)和所述第二上鎖鍵值的表項(xiàng),刪除該表項(xiàng)。
10.根據(jù)權(quán)利要求6所述的裝置,還包括:
定時(shí)清理模塊,用于當(dāng)達(dá)到定時(shí)時(shí)刻,查詢所述Mysql數(shù)據(jù)庫(kù)的分布式鎖表中過(guò)期時(shí)間小于所述定時(shí)時(shí)刻的表項(xiàng)并刪除;其中,所述定時(shí)時(shí)刻是基于預(yù)先設(shè)置的定時(shí)清理任務(wù)確定的。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京百度網(wǎng)訊科技有限公司,未經(jīng)北京百度網(wǎng)訊科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110735810.1/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種重入式腔體定向耦合器固定裝置
- 基于產(chǎn)品族排序?qū)崿F(xiàn)最小最大延誤的批調(diào)度方法
- 一種可重入資源調(diào)度方法、設(shè)備及系統(tǒng)
- 一種可重入函數(shù)的測(cè)試方法
- 測(cè)試單元內(nèi)可測(cè)試函數(shù)的劃分方法及測(cè)試方法
- 基于限流操作的可重入分布式處理方法及裝置
- 一種MCU固件快速升級(jí)方法
- 一種在具有可重入工序的客車(chē)涂裝車(chē)間中有限緩沖區(qū)動(dòng)態(tài)容量預(yù)留方法
- 一種漏洞檢測(cè)方法、裝置及電子設(shè)備
- 面向確定性可重入傳感器車(chē)間動(dòng)態(tài)批調(diào)度智能優(yōu)化方法
- 互動(dòng)業(yè)務(wù)終端、實(shí)現(xiàn)系統(tǒng)及實(shí)現(xiàn)方法
- 街景地圖的實(shí)現(xiàn)方法和實(shí)現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實(shí)現(xiàn)裝置及其圖像實(shí)現(xiàn)方法
- 增強(qiáng)現(xiàn)實(shí)的實(shí)現(xiàn)方法以及實(shí)現(xiàn)裝置
- 軟件架構(gòu)的實(shí)現(xiàn)方法和實(shí)現(xiàn)平臺(tái)
- 數(shù)值預(yù)報(bào)的實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 輸入設(shè)備實(shí)現(xiàn)方法及其實(shí)現(xiàn)裝置
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





