亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種分布式優(yōu)先級排隊鎖的實(shí)現(xiàn)方法與流程

文檔序號:12463573閱讀:1159來源:國知局

本發(fā)明涉及分布式并發(fā)和JAVA開發(fā)技術(shù)領(lǐng)域,特別是一種分布式優(yōu)先級排隊鎖的實(shí)現(xiàn)方法。



背景技術(shù):

在處理系統(tǒng)并發(fā)請求導(dǎo)致的數(shù)據(jù)異常時一般是使用鎖的方法,而在分布式系統(tǒng)中,一般通過memcached或者redis分布式鎖來實(shí)現(xiàn)。但是面臨并發(fā)量越來越大,請求情況越來越復(fù)雜的情況下,現(xiàn)有方案會有如下問題:

一是現(xiàn)有分布式鎖的解決方案是搶占式,誰先獲取到就誰先處理。而且并發(fā)量大的情況下,可能會導(dǎo)致一個請求由于搶不到鎖而需要很長時間才能處理,甚至一直搶不到鎖而導(dǎo)致無法處理請求;

二是現(xiàn)在的單服務(wù)器上一般使用的排隊鎖來解決此問題,但是并沒有在分布式系統(tǒng)上實(shí)現(xiàn),導(dǎo)致分布式系統(tǒng)無法解決此問題,同時如果直接使用排隊鎖,由于必須按照順序獲取鎖,這會導(dǎo)致獲取鎖效率變低;

三是現(xiàn)有鎖方案,無法設(shè)置優(yōu)先級,導(dǎo)致靈活性變低,無法優(yōu)先處理需求優(yōu)先處理的請求,只能一起搶占或者排隊;

為了保證獲取鎖的效率同時,防止獲取鎖的時間過長的問題,同時提高靈活性,需要一種在在分布式系統(tǒng)獲取鎖中,搶占失敗后不停提升優(yōu)先級,并且可以自定義優(yōu)先級配置的鎖的方法。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明解決的技術(shù)問題在于提供一種分布式優(yōu)先級排隊鎖的實(shí)現(xiàn)方法,在分布式系統(tǒng)高并發(fā)環(huán)境中保證并發(fā)請求獲取鎖效率同時,解決了可能有請求無法獲取鎖的問題,同時提供一種更靈活的優(yōu)先級來滿足各種特殊請求。

本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:

所述的方法包括如下步驟:

步驟1:給每個請求設(shè)置一個優(yōu)先級和優(yōu)先級策略,并開始獲取鎖;

步驟2:判斷數(shù)據(jù)庫互斥字段是否為空,如果為空,則執(zhí)行步驟3,如果不為空則執(zhí)行步驟6;

步驟3:判斷隊列是否有等待請求,如果沒有等待的請求,則執(zhí)行步驟9,如果有等待的請求,則執(zhí)行步驟4;

步驟4:判斷請求自己是否在隊列中,如果在隊列中,則執(zhí)行步驟5;否則執(zhí)行步驟6;

步驟5:判斷請求自己是否在第一位,如果是第一位,則執(zhí)行步驟9;否則等待一段時間后,重新執(zhí)行步驟2,繼續(xù)獲取鎖;

步驟6:根據(jù)優(yōu)先級策略提升該請求的優(yōu)先級策略;

步驟7:優(yōu)先級是否達(dá)到閾值,如果優(yōu)先級達(dá)到預(yù)設(shè)的優(yōu)先級閾值,則執(zhí)行步驟8,否則等待一段時間后,重新執(zhí)行步驟2,繼續(xù)獲取鎖;

步驟8:把請求放入到排隊隊列,重新執(zhí)行步驟2,繼續(xù)獲取鎖;

步驟9:設(shè)置數(shù)據(jù)庫互斥字段,如果設(shè)置成功,則執(zhí)行步驟10,如果設(shè)置失敗,執(zhí)行步驟6;

步驟10:處理請求并且把數(shù)據(jù)庫互斥字段清空,流程結(jié)束。

所述優(yōu)先級策略是設(shè)置互斥字段失敗后優(yōu)先級增加的步長或者是根據(jù)公式計算出新的優(yōu)先級;

所述數(shù)據(jù)庫互斥字段是指這個字段只能一個請求進(jìn)行設(shè)置更新,一旦一個請求操作成功,則其他請求無法進(jìn)行操作成功。

所述排隊隊列是請求的隊列,在此隊列中請求按照順序來獲取鎖,并且系統(tǒng)會優(yōu)先處理隊列中的請求。

所述的閾值是預(yù)先設(shè)定的一個優(yōu)先級值,當(dāng)請求的優(yōu)先級達(dá)到這個值之后,將可以進(jìn)入到排隊隊列中。

所述的獲取鎖是指獲取一個令牌,只有拿到這個令牌請求才能執(zhí)行,避免請求并發(fā)處理導(dǎo)致數(shù)據(jù)出錯。

本發(fā)明通過在分布式系統(tǒng)中結(jié)合傳統(tǒng)分布式鎖優(yōu)勢,開發(fā)一種靈活設(shè)定優(yōu)先級的排隊鎖的方法,使得分布式系統(tǒng)并發(fā)請求在保持鎖獲取效率的同時,避免個別請求長時間等待的問題,同能能夠給個別請求提升優(yōu)先級,滿足特殊需求。本發(fā)明通過解決這些問題,可能提高分布式系統(tǒng)的請求體驗,提升用戶的滿意度,同時優(yōu)化系統(tǒng),避免請求堵塞減低系統(tǒng)運(yùn)行效率。

附圖說明

下面結(jié)合附圖對本發(fā)明進(jìn)一步說明:

圖1為本發(fā)明方法流程圖。

具體實(shí)施方式

如圖1所示,本發(fā)明的實(shí)施流程如下:

主流程:

釋放鎖:

排隊獲取鎖:

更新優(yōu)先級和判斷是否加入隊列:

設(shè)置優(yōu)先級:

。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1