日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Zookeeper和Eureka有哪些區(qū)別?

CAP定理

10年積累的網(wǎng)站制作、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有池州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

在分布式系統(tǒng)的發(fā)展中,影響最大的莫過(guò)于CAP定理了,是分布式系統(tǒng)發(fā)展的理論基石。

  1. 2000年,加州大學(xué)的計(jì)算機(jī)科學(xué)家 Eric Brewer提出了CAP猜想
  2. 2002 年,麻省理工學(xué)院的 Seth Gilbert 和 Nancy Lynch 從理論上證明了 CAP 猜想,CAP猜想成為了CAP定理

「CAP定理,簡(jiǎn)單來(lái)說(shuō)就是分布式系統(tǒng)不可能同時(shí)滿(mǎn)足Consistency 一致性、Availability 可用性、Partition Tolerance 分區(qū)容錯(cuò)性三個(gè)要素」

Consistency 一致性

一致性的含義為,在節(jié)點(diǎn)的任意時(shí)刻,訪(fǎng)問(wèn)任意節(jié)點(diǎn)返回的數(shù)據(jù)是一致的。即Client端寫(xiě)入一個(gè)數(shù)據(jù)后,Server端將數(shù)據(jù)同步到整個(gè)系統(tǒng),從而保證系統(tǒng)的數(shù)據(jù)都相同

Availability 可用性

可用性的含義為,集群能夠?qū)τ脩?hù)的請(qǐng)求給予響應(yīng)。

Partition Tolerance 分區(qū)容錯(cuò)性

分區(qū)容錯(cuò)的含義為,當(dāng)出現(xiàn)分區(qū)故障時(shí),系統(tǒng)仍要對(duì)外提供服務(wù)。分布式系統(tǒng)中,每個(gè)服務(wù)節(jié)點(diǎn)都是不可靠的,當(dāng)某些節(jié)點(diǎn)出現(xiàn)異常時(shí),或者節(jié)點(diǎn)之間的通訊產(chǎn)生異常時(shí),整個(gè)系統(tǒng)就產(chǎn)生了分區(qū)問(wèn)題,分布式系統(tǒng)中分區(qū)問(wèn)題是客觀(guān)存在的。

CAP權(quán)衡

CA

系統(tǒng)選擇CA,即不支持分區(qū)容錯(cuò),只支持一致性和可用性。意味著不允許出現(xiàn)分區(qū)異常,網(wǎng)絡(luò)一致處于理想狀態(tài)。但是分布式系統(tǒng)之間網(wǎng)絡(luò)異常是客觀(guān)存在的,如果避免了P,只能把分布式系統(tǒng)退回到單實(shí)例系統(tǒng)。

CP

因?yàn)榉植际较到y(tǒng)P是客觀(guān)存在的,所以我們要在CP和AP之間進(jìn)行抉擇。

在網(wǎng)絡(luò)分區(qū)發(fā)生時(shí),兩個(gè)分布式節(jié)點(diǎn)之間無(wú)法進(jìn)行通信,我們對(duì)一個(gè)節(jié)點(diǎn)進(jìn)行的修改操作將無(wú)法同步到另外一個(gè)節(jié)點(diǎn),所以數(shù)據(jù)的「一致性」將無(wú)法滿(mǎn)足,因?yàn)閮蓚€(gè)分布式節(jié)點(diǎn)的數(shù)據(jù)不再保持一致。除非我們犧牲「可用性」,也就是暫停分布式節(jié)點(diǎn)服務(wù),在網(wǎng)絡(luò)分區(qū)發(fā)生時(shí),不再提供修改數(shù)據(jù)的功能,直到網(wǎng)絡(luò)狀況完全恢復(fù)正常再繼續(xù)對(duì)外提供服務(wù)

「當(dāng)選擇CP時(shí),相當(dāng)于放棄系統(tǒng)的可用性,換取一致性」。zookeeper是選擇了CP的系統(tǒng)

在zookeeper集群中,有如下三種角色

角色 作用
Leader事務(wù)請(qǐng)求的唯一調(diào)度者和處理者 (事務(wù)請(qǐng)求為除查詢(xún)之外的請(qǐng)求)
Follower處理非事務(wù)請(qǐng)求,參與Leader選舉投票
Observer處理非事務(wù)請(qǐng)求,不參與選舉投票

在Leader服務(wù)器失效時(shí),會(huì)重新從Follower服務(wù)器中選舉一個(gè)新的服務(wù)器作為L(zhǎng)eader服務(wù)器?!冈谥匦逻x舉Leader服務(wù)器的過(guò)程中,事務(wù)請(qǐng)求會(huì)被掛起,選舉完Leader服務(wù)器之后才會(huì)執(zhí)行這些請(qǐng)求」。即為了保證一致性,放棄了系統(tǒng)的可用性

AP

「當(dāng)選擇AP時(shí),相當(dāng)于放棄系統(tǒng)一致性,換取可用性」。eureka是選擇了AP的系統(tǒng)

和zookeeper集群中有三種角色不同的是,eureka集群中每個(gè)節(jié)點(diǎn)扮演相同的角色,他們通過(guò)互相注冊(cè)的方式來(lái)感知對(duì)方的存在,當(dāng)有注冊(cè)信息時(shí),他們會(huì)同步給集群內(nèi)的其他節(jié)點(diǎn)。

下面我從源碼角度分析一下eureka是如何放棄一致性來(lái)保證可用性的(放心,不會(huì)放源碼的,說(shuō)一下大概思路。源碼也比較簡(jiǎn)單,有興趣的可以看我寫(xiě)的博客https://blog.csdn.net/zzti_erlie/article/details/104088914)

eureka注冊(cè)中心的信息保存在AbstractInstanceRegistry類(lèi)的成員變量中

 
 
 
 
  1. // AbstractInstanceRegistry 
  2. private final ConcurrentHashMap>> registry 
  3.  = new ConcurrentHashMap>>(); 

就是一個(gè)雙層map,這個(gè)雙層map也很好理解。最外層是服務(wù)名,里面是一個(gè)具體的實(shí)例名

當(dāng)有服務(wù)往eureka上注冊(cè)時(shí),注冊(cè)信息會(huì)被保存在map中,同時(shí)會(huì)把信息同步給其他的節(jié)點(diǎn)。此時(shí)有可能有些節(jié)點(diǎn)不可用了,或者網(wǎng)絡(luò)故障,并沒(méi)有收到信息,此時(shí)集群節(jié)點(diǎn)內(nèi)的信息可能是不一致的。

當(dāng)客戶(hù)端從某個(gè)eureka節(jié)點(diǎn)獲取信息失敗,或者注冊(cè)失敗,會(huì)自動(dòng)切換到另一個(gè)eureka節(jié)點(diǎn)。只要有一臺(tái)eureka節(jié)點(diǎn)可用,就能保證注冊(cè)服務(wù)可用。

Zookeeper和Eureka的區(qū)別

最后總結(jié)一下兩者的區(qū)別

  Zookeeper Eureka
設(shè)計(jì)原則CPAP
優(yōu)點(diǎn)數(shù)據(jù)最終一致服務(wù)高可用
缺點(diǎn)選舉leader過(guò)程中集群不可用服務(wù)節(jié)點(diǎn)間的數(shù)據(jù)可能不一致
適用場(chǎng)景對(duì)數(shù)據(jù)一致性要求較高對(duì)注冊(cè)中心服務(wù)可用性要求較高

本文轉(zhuǎn)載自微信公眾號(hào)「Java識(shí)堂」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java識(shí)堂公眾號(hào)。


名稱(chēng)欄目:Zookeeper和Eureka有哪些區(qū)別?
網(wǎng)頁(yè)URL:http://www.dlmjj.cn/article/coecigp.html