[發(fā)明專利]死鎖處理方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201710544543.3 | 申請(qǐng)日: | 2017-07-06 |
| 公開(公告)號(hào): | CN107402822B | 公開(公告)日: | 2018-09-11 |
| 發(fā)明(設(shè)計(jì))人: | 王亞輝;張曉春 | 申請(qǐng)(專利權(quán))人: | 騰訊科技(深圳)有限公司 |
| 主分類號(hào): | G06F9/52 | 分類號(hào): | G06F9/52 |
| 代理公司: | 深圳市隆天聯(lián)鼎知識(shí)產(chǎn)權(quán)代理有限公司 44232 | 代理人: | 劉抗美;胡明 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 死鎖 處理 方法 裝置 | ||
本公開涉及了一種死鎖處理方法及裝置。所述死鎖處理方法包括接收節(jié)點(diǎn)發(fā)起的資源訪問請(qǐng)求,根據(jù)所述資源訪問請(qǐng)求確定請(qǐng)求訪問資源;根據(jù)所述請(qǐng)求訪問資源由鎖信息緩存中獲取對(duì)應(yīng)的鎖信息,所述鎖信息指示了所述請(qǐng)求訪問資源對(duì)應(yīng)的訪問對(duì)象,所述訪問對(duì)象包括節(jié)點(diǎn)及線程;通過對(duì)分布式系統(tǒng)中各節(jié)點(diǎn)工作狀態(tài)的監(jiān)控,判斷所述鎖信息指示的訪問對(duì)象中節(jié)點(diǎn)的工作狀態(tài)是否為離線狀態(tài);如果是,根據(jù)所述資源訪問請(qǐng)求確定的訪問對(duì)象更改所述鎖信息。采用本公開提供的死鎖處理方法及裝置能夠完全避免由于節(jié)點(diǎn)異常而出現(xiàn)的死鎖,進(jìn)而有效地保障了分布式系統(tǒng)中資源訪問的安全性。
技術(shù)領(lǐng)域
本公開涉及分布式鎖技術(shù)領(lǐng)域,尤其涉及一種死鎖處理方法及裝置。
背景技術(shù)
在分布式系統(tǒng)中,每個(gè)節(jié)點(diǎn)都可以通過計(jì)算機(jī)網(wǎng)絡(luò)訪問分布式系統(tǒng)中共享的資源,為了保障分布式系統(tǒng)中資源訪問的安全性,避免數(shù)據(jù)的一致性遭到破壞,由此產(chǎn)生了控制分布式系統(tǒng)中各節(jié)點(diǎn)訪問同一資源的分布式鎖。
目前,較為廣泛使用的分布式鎖有zookeeper分布式鎖、memcached分布式鎖以及redis分布式鎖,該三種分布式鎖針對(duì)死鎖問題都提出了相應(yīng)的解決方案,前者通過移除臨時(shí)節(jié)點(diǎn)避免死鎖,后兩者則通過設(shè)置過期時(shí)間避免死鎖。
然而,前者由于需要?jiǎng)討B(tài)產(chǎn)生和銷毀臨時(shí)節(jié)點(diǎn),性能開銷較大,而后兩者在過期時(shí)間內(nèi)仍無法完全避免出現(xiàn)死鎖。因此,如何簡單、高效地避免死鎖問題的發(fā)生亟待解決。
發(fā)明內(nèi)容
為了解決上述技術(shù)問題,本公開的一個(gè)目的在于提供一種死鎖處理方法及裝置。
其中,本公開所采用的技術(shù)方案為:
一種死鎖處理方法,包括:接收節(jié)點(diǎn)發(fā)起的資源訪問請(qǐng)求,根據(jù)所述資源訪問請(qǐng)求確定請(qǐng)求訪問資源;根據(jù)所述請(qǐng)求訪問資源由鎖信息緩存中獲取對(duì)應(yīng)的鎖信息,所述鎖信息指示了所述請(qǐng)求訪問資源對(duì)應(yīng)的訪問對(duì)象,所述訪問對(duì)象包括節(jié)點(diǎn)及線程;通過對(duì)分布式系統(tǒng)中各節(jié)點(diǎn)工作狀態(tài)的監(jiān)控,判斷所述鎖信息指示的訪問對(duì)象中節(jié)點(diǎn)的工作狀態(tài)是否為離線狀態(tài);如果是,根據(jù)所述資源訪問請(qǐng)求確定的訪問對(duì)象更改所述鎖信息。
一種死鎖處理裝置,包括:訪問請(qǐng)求接收模塊,用于接收節(jié)點(diǎn)發(fā)起的資源訪問請(qǐng)求,根據(jù)所述資源訪問請(qǐng)求確定請(qǐng)求訪問資源;鎖信息獲取模塊,用于根據(jù)所述請(qǐng)求訪問資源由鎖信息緩存中獲取對(duì)應(yīng)的鎖信息,所述鎖信息指示了所述請(qǐng)求訪問資源對(duì)應(yīng)的訪問對(duì)象,所述訪問對(duì)象包括節(jié)點(diǎn)及線程;死鎖判斷模塊,用于通過對(duì)分布式系統(tǒng)中各節(jié)點(diǎn)工作狀態(tài)的監(jiān)控,判斷所述鎖信息指示的訪問對(duì)象中節(jié)點(diǎn)的工作狀態(tài)是否為離線狀態(tài);如果是,則通知鎖信息更改模塊;所述鎖信息更改模塊,用于根據(jù)所述資源訪問請(qǐng)求確定的訪問對(duì)象更改所述鎖信息。
與現(xiàn)有技術(shù)相比,本公開具有以下有益效果:
通過接收節(jié)點(diǎn)發(fā)起的資源訪問請(qǐng)求確定請(qǐng)求訪問資源,在鎖信息緩存中根據(jù)請(qǐng)求訪問資源獲取對(duì)應(yīng)的鎖信息,并通過監(jiān)控判斷鎖信息指示的訪問對(duì)象中節(jié)點(diǎn)的工作狀態(tài)是否為離線狀態(tài),進(jìn)而在該節(jié)點(diǎn)處于離線狀態(tài)時(shí)根據(jù)資源訪問請(qǐng)求確定的訪問對(duì)象更改鎖信息。
換而言之,當(dāng)鎖信息指示的訪問對(duì)象中的節(jié)點(diǎn)處于離線狀態(tài)時(shí),表明該節(jié)點(diǎn)異常,此時(shí)通過主動(dòng)更改鎖信息,使得更改前鎖信息指示的訪問對(duì)象能夠及時(shí)地釋放請(qǐng)求訪問資源,進(jìn)而使得資源訪問請(qǐng)求確定的訪問對(duì)象能夠?qū)υ撜?qǐng)求訪問資源進(jìn)行訪問,由此完全避免由于節(jié)點(diǎn)異常而出現(xiàn)的死鎖,進(jìn)而有效地保障了分布式系統(tǒng)中資源訪問的安全性。
此外,通過服務(wù)器中配置的鎖信息緩存,有效地避免了服務(wù)器死機(jī)重啟時(shí)造成鎖信息的丟失,進(jìn)而充分地保證了分布式系統(tǒng)中資源訪問的可靠性。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實(shí)施例,并于說明書一起用于解釋本公開的原理。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于騰訊科技(深圳)有限公司,未經(jīng)騰訊科技(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710544543.3/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測試終端的測試方法
- 一種服裝用人體測量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





