好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 分布式鎖為什么要選擇Zookeeper而不是Redis?看完這篇你就明白了

分布式鎖為什么要選擇Zookeeper而不是Redis?看完這篇你就明白了

熱門標簽:貴州電銷卡外呼系統 超呼電話機器人 魔獸2青云地圖標注 日本中國地圖標注 山東外呼銷售系統招商 十堰營銷電銷機器人哪家便宜 宿遷便宜外呼系統平臺 北京400電話辦理收費標準 鄭州人工智能電銷機器人系統

在分布式的應用中,為了防止單點故障,保障高可用,通常會采用主從結構,當主節點掛掉后,從節點可以代替主節點提供服務。

Redis通過復制 + sentinel哨兵來實現主從模式。

Zookeeper通過replicated mode復制模式來實現主從模式。

單從結構上看,Redis和Zookeeper都是主從架構,那Zookeeper的優勢是什么?為什么要選擇Zookeeper?難道只是因為Zookeeper是目錄結構,Redis是K-V結構嗎?

同步機制的不同

Redis

Redis在給從節點同步數據時,正常情況是增量同步,也就是主節點的數據修改語句(DML)會異步的同步給從節點。Redis的數據同步沒有保障數據一致性的機制,也就是說,一條DML在主節點執行成功時,不能保障其他從節點成功執行了這條數據,這就會造成一個問題,如果在數據沒有同步到從節點時,主節點掛掉,就會產生數據丟失的情況。

Zookeeper

Zookeeper使用類paxos算法來保障數據的一致性。簡單的講,當一個DML語句發送給主節點時,Zookeeper需要保證一半以上的節點接收到數據,才會返回成功。并且當主節點掛掉,從節點重新選舉時,同步到最新的數據的節點會有優先選舉權。

舉個例子:

一個4節點Zookeeper(A、B、C、D),A是主節點,當執行一個create語句成功時,至少有3臺節點執行成功(一半以上),例如A、C、D成功。此時如果A節點掛了,B、C、D進行選舉,由于C、D都執行成功了create語句,B沒有執行,C、D的數據更加新,具有優先選舉權,再根據名稱排序,選擇C做為主節點。在整個選舉過程中,服務不可用,選舉完成后,C節點和A節點數據一致,不會出現丟失的情況。

分布式鎖

要實現分布式鎖,需要滿足一些要求:

  • 只能有一個服務的一個線程能獲取鎖
  • 一個持有鎖的線程掛掉后,鎖應該被釋放,用來給其他線程用
  • 一個持有鎖的線程沒執行完,鎖不能釋放
  • 鎖釋放后,其他等待者可以繼續爭搶
  • 管理鎖的主節點(Redis或Zookeeper)掛了,重新選舉后,不影響鎖的持有情況

Redis解決方案

問題1、問題2:使用“SET key value EX seconds NX”語句獲取鎖并設置過期時間

問題3:另開一個監控線程,監控主線程執行情況,用來延長過期時間

問題4:等待線程定時檢查鎖的持有情況

問題5:暫無或者解決成本很高,需要自己實現類paxos的算法

Zookeeper解決方案

通過創建臨時節點可以解決問題1,2,3

watch機制可以解決問題4,并且相比定時檢查,watch可以做到更高實時性

zookeeper的paxos同步機制保障了節點間數據一致性,即使主節點掛掉,也可以保障數據不丟,可以解決問題5

對比可以發現:

Zookeeper的機制可以保證分布式鎖實現業務代碼簡單,成本低。

Redis如果要解決分布式鎖的問題,對于一些復雜的情況,很難解決,成本較高。

以上就是分布式鎖為什么要選擇Zookeeper而不是Redis?看完這篇你就明白了的詳細內容,更多關于分布式鎖Zookeeper Redis的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • C# 實現Zookeeper分布式鎖的參考示例
  • ZooKeeper 實現分布式鎖的方法示例
  • 淺談Java(SpringBoot)基于zookeeper的分布式鎖實現
  • 淺談分布式鎖的幾種使用方式(redis、zookeeper、數據庫)
  • zookeeper實現分布式鎖
  • 如何操作Redis和zookeeper實現分布式鎖
  • java使用zookeeper實現的分布式鎖示例
  • 分析ZooKeeper分布式鎖的實現

標簽:北京 楊凌 大慶 臺州 吉安 江蘇 朝陽 果洛

巨人網絡通訊聲明:本文標題《分布式鎖為什么要選擇Zookeeper而不是Redis?看完這篇你就明白了》,本文關鍵詞  分布式,鎖,為什么,要,選擇,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《分布式鎖為什么要選擇Zookeeper而不是Redis?看完這篇你就明白了》相關的同類信息!
  • 本頁收集關于分布式鎖為什么要選擇Zookeeper而不是Redis?看完這篇你就明白了的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 精产国品一二三产区区别林志玲 | 17c国产精品88888| 97伊人| 天堂WWW在线а√天堂| 野模宾馆私拍一二三区| 美女靠逼视频| 日韩精品国产AV| 美女动作一级毛片| 51cg吃瓜黑料| 美女的隐私视频网站免费| 欧美成人a| 成人激情在线| 男女免费爽爽爽在线视频| 天天射天天草| 在线AV免费无码一区| 处一女一乱一乱一视频| 摸进她的内裤里疯狂揉她在线观看 | 国产?婬片A片AAA片欧美| 香港一级婬片A片免费播放小说| 亚洲综合欧美日韩| 久久精品中文| 被?到爽??高潮痉挛| 沟厕极品偷拍沟厕极品| 亚洲高清电影| 国产精品视频久久久| 亚洲精品乱码久久久久蜜桃| 黄色网视频| 揉我奶头?啊?cao我视频| 看美女的网站| 午夜福利一区二区三区| 欧美一区二区三区久久综合| 国产自在线拍| 中国一级**毛片| 亚洲精品www久久久久久久软件| 欧美人妻一区二区三区电影| 欧美日韩一区二区中文字幕视频| 被主人摁住灌浓精尿| AAAA级毛皮和AAAA的区别| 免费?无码?国产29在线| 精品亚洲成a人在线播放| 国产xxxxx视频|