eureka與zookeeper的原理是什么

這篇文章主要介紹“eureka與zookeeper的原理是什么”,在日常操作中,相信很多人在eureka與zookeeper的原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”eureka與zookeeper的原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

萊西ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

 CAP 理論

什么叫 CAP 理論呢?CAP 理論是由 Eric Brewer 教授提出,是分布式系統(tǒng)中的一個重要的概念。具體如下:

C(Consistency):數(shù)據(jù)一致性。大家都知道,分布式系統(tǒng)中,數(shù)據(jù)會有副本。由于網(wǎng)絡(luò)或者機器故障等因素,可能有些副本數(shù)據(jù)寫入正確,有些卻寫入錯誤或者失敗,這樣就導(dǎo)致了數(shù)據(jù)的不一致了。而滿足數(shù)據(jù)一致性規(guī)則,就是保證所有數(shù)據(jù)都要同步。

A(Availability):可用性。我們需要獲取什么數(shù)據(jù)時,都能夠正常的獲取到想要的數(shù)據(jù)(當(dāng)然,允許可接受范圍內(nèi)的網(wǎng)絡(luò)延遲),也就是說,要保證任何時候請求數(shù)據(jù)都能夠正常響應(yīng)。

P(Partition Tolerance):分區(qū)容錯性。當(dāng)網(wǎng)絡(luò)通信發(fā)生故障時,集群仍然可用,不會因為某個節(jié)點掛了或者存在問題,而影響整個系統(tǒng)的正常運作。

對于分布式系統(tǒng)來說,出現(xiàn)網(wǎng)絡(luò)分區(qū)是不可避免的,因此分區(qū)容錯性是必須要具備的,也就是說,CAP三者,P是必須的,是個客觀存在的事實,不可避免,也無法繞過。

1. Zookeeper 的 CP 原則

對于 zookeeper 來說,它是 CP 的。也就是說,zookeeper 是保證數(shù)據(jù)的一致性的,但是這里還需要注意一點是,zookeeper 它不是強一致的,什么意思呢?

打個比方,現(xiàn)在客戶端 A 提交一個寫操作,zookeeper 在過半數(shù)節(jié)點操作成功之后就可以返回,但此時,客戶端 B 的讀操作請求的是 A 寫曹操尚未同步到的節(jié)點,那么讀取的就不是 A 最新提交的數(shù)據(jù)了。

那如何保證強一致性呢?我們可以在讀取數(shù)據(jù)的時候先執(zhí)行一下 sync 操作,即與 leader 節(jié)點先同步一下數(shù)據(jù),再去取,這樣才能保證數(shù)據(jù)的強一致性。

但是 zookeeper 也有個缺陷,剛剛提到了 leader 節(jié)點,當(dāng) master 節(jié)點因為網(wǎng)絡(luò)故障與其他節(jié)點失去聯(lián)系時,剩余節(jié)點會重新進行 leader 選舉。問題在于,選舉 leader 的時間太長,30 ~ 120s, 且選舉期間整個 zookeeper 集群都是不可用的,這就導(dǎo)致在選舉期間注冊服務(wù)癱瘓。

在云部署的環(huán)境下,因網(wǎng)絡(luò)問題使得 zookeeper 集群失去 master 節(jié)點是較大概率會發(fā)生的事,雖然服務(wù)能夠最終恢復(fù),但是漫長的選舉時間導(dǎo)致的注冊長期不可用是不能容忍的。比如雙十一當(dāng)天,那就是災(zāi)難性的。

2. Eureka 的 AP 原則

大規(guī)模網(wǎng)絡(luò)部署時,失敗是在所難免的,因此我們無法回避這個問題。當(dāng)向注冊中心查詢服務(wù)列表時,我們可以容忍注冊中心返回的是幾分鐘以前的注冊信息,但不能接受服務(wù)直接 down 掉不可用。

Eureka 在被設(shè)計的時候,就考慮到了這一點,因此在設(shè)計時優(yōu)先保證可用性,這就是 AP 原則。Eureka 各個節(jié)點都是平等的,幾個節(jié)點掛掉不會影響正常節(jié)點的工作,剩余的節(jié)點依然可以提供注冊和查詢服務(wù)。

而 Eureka 的客戶端在向某個 Eureka 注冊或時如果發(fā)現(xiàn)連接失敗,則會自動切換至其它節(jié)點,只要有一臺 Eureka 還在,就能保證注冊服務(wù)可用(即保證A原則),只不過查到的信息可能不是最新的(不保證C原則)。

正因為應(yīng)用實例的注冊信息在集群的所有節(jié)點間并不是強一致的,所以需要客戶端能夠支持負載均衡以及失敗重試。在 Netflix 的生態(tài)中,ribbon 可以提供這個功能。

因此, Eureka 可以很好的應(yīng)對因網(wǎng)絡(luò)故障導(dǎo)致部分節(jié)點失去聯(lián)系的情況,而不會像 zookeeper 那樣使整個注冊服務(wù)癱瘓。

3. 結(jié)果

作為服務(wù)注冊中心,最重要的是要保證可用性,可以接收段時間內(nèi)數(shù)據(jù)不一致的情況。個人覺得 Eureka 作為單純的服務(wù)注冊中心來說要比 zookeeper 更加適合一點。

到此,關(guān)于“eureka與zookeeper的原理是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

標(biāo)題名稱:eureka與zookeeper的原理是什么
分享路徑:http://bm7419.com/article18/pciigp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、靜態(tài)網(wǎng)站網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)