您現在的位置是:首頁 > 運動
語音軟體開發,圍繞分散式鎖展開的分析
dbms主要的四個功能是什麼
為了解決多個執行緒同時操作同一資源而導致資料不一致的情況,在
語音軟體開發
中便引入了分散式鎖。分散式鎖要想達到強一致性的目的需要藉助Redis或Mysql。在語音軟體開發中,圍繞分散式鎖展開了哪些分析呢?
一、需要加分散式鎖的時機
1、 有寫操作
在語音軟體開發中,由於讀操作不會對系統資源產生影響所以在讀操作下並不需要進行先後順序的限制,但寫操作是會影響系統資源的,所以不同寫操作的執行先後順序就很重要,在該情況下就加上分散式鎖。
2、 有併發,多執行緒
如果只是單個執行任務,那就沒有必要進行管理,只有出現多個執行任務才需要對不同執行任務進行先後順序的管理,也就是說語音軟體開發出現併發、多執行緒就可以加入分散式鎖了。
3、 有競爭關係
由於系統資源的共享性,不同的多個事務在執行過程中是存在一定競爭關係的,為了保證同一時刻的某些資源只能被一個事務佔用,就得使用分散式鎖了。
二、分散式鎖的實現方式
1、 基於資料庫實現的分散式鎖
我們可以利用語音軟體開發中的資料庫來實現分散式鎖。但由於利用資料庫實現的分散式鎖無法透過事件監聽來確定是否獲取到鎖,所以只能採用輪詢的方式不斷地獲取鎖,在這過程中就增加對資料庫資源的消耗,進而導致資料庫效能的降低。
2、 基於單機Redis實現的分散式鎖
在語音軟體開發中Redis作為一種快取中介軟體,其效能要比資料庫強很多,所以很多人會用Redis來實現分散式鎖。但是此鎖非彼鎖,更準確的說法應該是實現了單機版的Redis鎖。通常基於單機Redis實現的分散式鎖的使用包含三個步驟,分別是獲取鎖、使用鎖和釋放鎖。
3、 基於Redis的高可用分散式鎖
在語音軟體開發中,基於Redis的高可用分散式鎖通常是由多個完全獨立的Redis節點組成的,並且可以利用分散式系統中的可用原則來保證分散式鎖的高可用。
不同的分散式鎖實現方式難易程度不同、效能不同、穩定性不同,因此,在實際開發中需要結合具體的功能場景進行選擇。在語音軟體開發中,並不是一定要選擇哪一種,而是要選擇最合適的那一種。
宣告:本文由雲豹科技原創,轉載請註明作者名及原文連結,否則視為侵權
推薦文章
- 三國殺:打著燈籠都找不到的忠臣有哪些?這些“燈籠忠”死遠點!
光是這個桃子只能自己用的debuff就完全杜絕謀呂蒙當忠的所有可能了,天知道為什麼遊戲裡還有那麼多奇葩忠臣會選這麼個玩意...
- 腦筋急轉彎:悟空扣門八戒開,猜五字俗語!答案笑死人了
砸下來的是雪花放下屠刀立地成佛薯片(老鼠騙野馬)裡外不是人她在賴床他按的電視開關他還在想沒有人會在蛋糕上插上三長兩短三毛(小明是姐姐)打公用電話肯定要付錢腦筋急轉彎:悟空扣門八戒開 ,猜五字俗語...
- 成都喜迎一所“網紅”新校區,佔地1500畝引關注,助力教育崛起!
這所學校就是成都體育學院的新校區,從2021年2月12日開始,成都體育學院的整體遷建的專案就在成都的天賦國際新城舉行了開工儀式,這個專案規定成都體育學院的新校區建立在天府奧體城的核心區域,臨近風景秀麗的三岔湖...