【Zookeeper面试篇】什么是羊群效应,公平锁怎么实现
問:zookeeper羊群效應(yīng)是怎么回事嗎,如何避免呢
zookeeper用來實(shí)現(xiàn)分布式鎖的時(shí)候,如果有一個(gè)客戶端A拿到了鎖,那么客戶端B、C、D都會(huì)監(jiān)聽A有沒有變化,如果A處理完業(yè)務(wù)釋放了鎖,那么這個(gè)時(shí)候B、C、D都監(jiān)聽到了消息,都會(huì)去搶鎖,假如有一百個(gè)正在等待的,那么就會(huì)有100個(gè)上去搶鎖,像羊群一樣蜂擁而至。
這樣的話就會(huì)造成資源的浪費(fèi),因?yàn)檫@么多節(jié)點(diǎn)被驚動(dòng)了,但是拿到鎖的只有一個(gè)節(jié)點(diǎn),為何不只驚動(dòng)一個(gè)節(jié)點(diǎn)呢。這里的話我們就要使用zookeeper的公平鎖了。
問:zookeeper公平鎖怎么實(shí)現(xiàn)
zookeeper有四種節(jié)點(diǎn)類型,其中就有一個(gè)臨時(shí)順序節(jié)點(diǎn)的特性,這個(gè)時(shí)候我們可以每一次都建立一個(gè)臨時(shí)順序節(jié)點(diǎn),然后后一個(gè)節(jié)點(diǎn)監(jiān)聽前一個(gè)節(jié)點(diǎn)的變化,只有前一個(gè)節(jié)點(diǎn)有變化他才能感知到,再往前的節(jié)點(diǎn)變化他無法感知到,也就不存在搶鎖的問題。
這樣的話就可以通過臨時(shí)順序節(jié)點(diǎn)來實(shí)現(xiàn)公平鎖。
總結(jié)
以上是生活随笔為你收集整理的【Zookeeper面试篇】什么是羊群效应,公平锁怎么实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle、聚石塔
- 下一篇: 阿里云服务器或聚石塔的容器无法访问外网问