[發(fā)明專利]用于控制分布式鎖的方法和裝置在審
| 申請(qǐng)?zhí)枺?/td> | 201610500055.8 | 申請(qǐng)日: | 2016-06-29 |
| 公開(公告)號(hào): | CN107544850A | 公開(公告)日: | 2018-01-05 |
| 發(fā)明(設(shè)計(jì))人: | 陳興波;丁雪豐 | 申請(qǐng)(專利權(quán))人: | 百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司 |
| 主分類號(hào): | G06F9/52 | 分類號(hào): | G06F9/52 |
| 代理公司: | 北京英賽嘉華知識(shí)產(chǎn)權(quán)代理有限責(zé)任公司11204 | 代理人: | 王達(dá)佐,馬曉亞 |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 控制 分布式 方法 裝置 | ||
技術(shù)領(lǐng)域
本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種用于控制分布式鎖的方法和裝置。
背景技術(shù)
在多系統(tǒng)進(jìn)行交互的情況下,有時(shí)需要對(duì)系統(tǒng)間相關(guān)聯(lián)的操作進(jìn)行協(xié)調(diào),使得系統(tǒng)的操作能同步或互斥執(zhí)行。
分布式鎖是控制分布式系統(tǒng)之間同步訪問共享資源的一種方式。在分布式系統(tǒng)中,常常需要協(xié)調(diào)他們的動(dòng)作。如果不同的系統(tǒng)或是同一個(gè)系統(tǒng)的不同主機(jī)之間共享了一個(gè)或一組資源,那么訪問這些資源的時(shí)候,往往需要互斥來防止彼此干擾來保證一致性,在這種情況下,便需要使用到分布式鎖。現(xiàn)有的系統(tǒng)一致性協(xié)調(diào)方案中,一般通過一致性協(xié)調(diào)工具(例如,Zookeeper軟件、Chubby組件等)對(duì)分布式鎖進(jìn)行控制,其中,Zookeeper軟件是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件;Chubby組件是用于解決分布式一致性問題的組件。現(xiàn)有的一致性協(xié)調(diào)方案要求客戶端和服務(wù)端之間保持連接,客戶端和服務(wù)端之間協(xié)議復(fù)雜,需要使用專用的客戶端進(jìn)行交互;服務(wù)端的Zookeeper集群和Chubby集群寫操作只在主節(jié)點(diǎn)進(jìn)行,使用ZAB協(xié)議(ZooKeeper Atomic Broadcast,原子消息廣播協(xié)議)或Paxos算法(Leslie Lamport于1990年提出的一種基于消息傳遞的一致性算法)進(jìn)行提交,需要集群中過半節(jié)點(diǎn)提交成功,整個(gè)集群的提交工作才能正常完成,即現(xiàn)有的一致性協(xié)調(diào)方法普遍存在對(duì)客戶端和服務(wù)端的要求較多,交互復(fù)雜的問題。
發(fā)明內(nèi)容
本申請(qǐng)的目的在于提出一種用于控制分布式鎖的方法和裝置,來 解決以上背景技術(shù)部分提到的技術(shù)問題。
第一方面,本申請(qǐng)?zhí)峁┝艘环N用于控制分布式鎖的方法,所述方法包括:向服務(wù)端發(fā)送分布式鎖的加鎖請(qǐng)求,所述加鎖請(qǐng)求包括:所述分布式鎖的標(biāo)識(shí);響應(yīng)于從所述服務(wù)端接收到加鎖成功消息,執(zhí)行受所述分布式鎖保護(hù)的業(yè)務(wù)操作,其中,所述加鎖成功消息是在所述服務(wù)端確定所述分布式鎖未被占用的情況下返回的;響應(yīng)于從所述服務(wù)端接收到加鎖失敗消息或在預(yù)設(shè)的第一時(shí)間段內(nèi)未接收到所述服務(wù)端返回的消息,繼續(xù)向所述服務(wù)端發(fā)送所述加鎖請(qǐng)求并且在滿足以下條件之一的情況下停止發(fā)送所述加鎖請(qǐng)求:從所述服務(wù)端接收到所述加鎖成功消息,自首次向所述服務(wù)端發(fā)送所述加鎖請(qǐng)求起經(jīng)過了預(yù)設(shè)的第二時(shí)間段;其中,所述加鎖失敗消息是在所述服務(wù)端確定所述分布式鎖被占用的情況下返回的。
在一些實(shí)施例中,所述方法還包括:響應(yīng)于受所述分布式鎖保護(hù)的業(yè)務(wù)操作的執(zhí)行完成,向所述服務(wù)端發(fā)送所述分布式鎖的解鎖請(qǐng)求,所述解鎖請(qǐng)求包括:所述分布式鎖的標(biāo)識(shí)。
在一些實(shí)施例中,所述響應(yīng)于從所述服務(wù)端接收到加鎖成功消息,執(zhí)行受所述分布式鎖保護(hù)的業(yè)務(wù)操作,包括:在所述業(yè)務(wù)操作的執(zhí)行期間,間隔預(yù)設(shè)第三時(shí)間段向所述服務(wù)端發(fā)送對(duì)所述分布式鎖的延期解鎖請(qǐng)求,所述延期解鎖請(qǐng)求包括:所述分布式鎖的標(biāo)識(shí)。
在一些實(shí)施例中,所述響應(yīng)于從所述服務(wù)端接收到加鎖成功消息,執(zhí)行受所述分布式鎖保護(hù)的業(yè)務(wù)操作,包括:響應(yīng)于從所述服務(wù)端接收到輪詢消息,向所述服務(wù)端發(fā)送所述分布式鎖的延期解鎖請(qǐng)求或解鎖請(qǐng)求。
第二方面,本申請(qǐng)?zhí)峁┮环N用于控制分布式鎖的方法,所述方法包括:從客戶端接收分布式鎖的加鎖請(qǐng)求,所述加鎖請(qǐng)求包括:所述分布式鎖的標(biāo)識(shí);判斷所述加鎖請(qǐng)求指示的所述分布式鎖是否被占用;響應(yīng)于確定所述加鎖請(qǐng)求指示的所述分布式鎖未被占用,向所述客戶端發(fā)送加鎖成功消息,以供所述客戶端執(zhí)行受所述分布式鎖保護(hù)的業(yè)務(wù)操作;響應(yīng)于確定所述加鎖請(qǐng)求指示的所述分布式鎖被占用,向所述客戶端發(fā)送加鎖失敗消息。
在一些實(shí)施例中,所述方法還包括:響應(yīng)于從所述客戶端接收所述分布式鎖的解鎖請(qǐng)求,解除所述解鎖請(qǐng)求指示的所述分布式鎖,所述解鎖請(qǐng)求包括:所述分布式鎖的標(biāo)識(shí)。
在一些實(shí)施例中,所述方法還包括:響應(yīng)于從所述客戶端接收所述分布式鎖的延期解鎖請(qǐng)求,對(duì)所述延期解鎖請(qǐng)求指示的所述分布式鎖的過期時(shí)間進(jìn)行更新,所述延期解鎖請(qǐng)求包括:所述分布式鎖的標(biāo)識(shí)。
在一些實(shí)施例中,所述方法還包括:在所述分布式鎖的過期時(shí)間之前,向所述客戶端發(fā)送輪詢消息。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司,未經(jīng)百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610500055.8/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種擋水板及一種電蒸柜蒸架
- 下一篇:一種鎖操作處理方法及裝置
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(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ì)





