成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何進行ZooKeeper與Eureka的比較

如何進行ZooKeeper與Eureka的比較,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

為臨渭區(qū)等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及臨渭區(qū)網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站制作、臨渭區(qū)網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

 簡介

Eureka本身是Netflix開源的一款提供服務(wù)注冊和發(fā)現(xiàn)的產(chǎn)品,并且提供了相應(yīng)的Java封裝。在它的實現(xiàn)中,節(jié)點之間相互平等,部分注冊中心的節(jié)點掛掉也不會對集群造成影響,即使集群只剩一個節(jié)點存活,也可以正常提供發(fā)現(xiàn)服務(wù)。哪怕是所有的服務(wù)注冊節(jié)點都掛了,Eureka  Clients(客戶端)上也會緩存服務(wù)調(diào)用的信息。這就保證了我們微服務(wù)之間的互相調(diào)用足夠健壯。

Zookeeper主要為大型分布式計算提供開源的分布式配置服務(wù)、同步服務(wù)和命名注冊。曾經(jīng)是Hadoop項目中的一個子項目,用來控制集群中的數(shù)據(jù),目前已升級為獨立的頂級項目。很多場景下也用它作為Service發(fā)現(xiàn)服務(wù)解決方案。

對比

在分布式系統(tǒng)中有個著名的CAP定理(C-數(shù)據(jù)一致性;A-服務(wù)可用性;P-服務(wù)對網(wǎng)絡(luò)分區(qū)故障的容錯性,這三個特性在任何分布式系統(tǒng)中不能同時滿足,最多同時滿足兩個)。

Zookeeper

Zookeeper是基于CP來設(shè)計的,即任何時刻對Zookeeper的訪問請求能得到一致的數(shù)據(jù)結(jié)果,同時系統(tǒng)對網(wǎng)絡(luò)分割具備容錯性,但是它不能保證每次服務(wù)請求的可用性。從實際情況來分析,在使用Zookeeper獲取服務(wù)列表時,如果zookeeper正在選主,或者Zookeeper集群中半數(shù)以上機器不可用,那么將無法獲得數(shù)據(jù)。所以說,Zookeeper不能保證服務(wù)可用性。

誠然,在大多數(shù)分布式環(huán)境中,尤其是涉及到數(shù)據(jù)存儲的場景,數(shù)據(jù)一致性應(yīng)該是首先被保證的,這也是zookeeper設(shè)計成CP的原因。但是對于服務(wù)發(fā)現(xiàn)場景來說,情況就不太一樣了:針對同一個服務(wù),即使注冊中心的不同節(jié)點保存的服務(wù)提供者信息不盡相同,也并不會造成災(zāi)難性的后果。因為對于服務(wù)消費者來說,能消費才是最重要的——拿到可能不正確的服務(wù)實例信息后嘗試消費一下,也好過因為無法獲取實例信息而不去消費。(嘗試一下可以快速失敗,之后可以更新配置并重試)所以,對于服務(wù)發(fā)現(xiàn)而言,可用性比數(shù)據(jù)一致性更加重要——AP勝過CP。

Eureka

而Spring Cloud Netflix在設(shè)計Eureka時遵守的就是AP原則。Eureka  Server也可以運行多個實例來構(gòu)建集群,解決單點問題,但不同于ZooKeeper的選舉leader的過程,Eureka Server采用的是Peer to  Peer對等通信。這是一種去中心化的架構(gòu),無master/slave區(qū)分,每一個Peer都是對等的。在這種架構(gòu)中,節(jié)點通過彼此互相注冊來提高可用性,每個節(jié)點需要添加一個或多個有效的serviceUrl指向其他節(jié)點。每個節(jié)點都可被視為其他節(jié)點的副本。

如果某臺Eureka Server宕機,Eureka Client的請求會自動切換到新的Eureka  Server節(jié)點,當(dāng)宕機的服務(wù)器重新恢復(fù)后,Eureka會再次將其納入到服務(wù)器集群管理之中。當(dāng)節(jié)點開始接受客戶端請求時,所有的操作都會進行replicateToPeer(節(jié)點間復(fù)制)操作,將請求復(fù)制到其他Eureka  Server當(dāng)前所知的所有節(jié)點中。

一個新的Eureka Server節(jié)點啟動后,會首先嘗試從鄰近節(jié)點獲取所有實例注冊表信息,完成初始化。Eureka  Server通過getEurekaServiceUrls()方法獲取所有的節(jié)點,并且會通過心跳續(xù)約的方式定期更新。默認(rèn)配置下,如果Eureka  Server在一定時間內(nèi)沒有接收到某個服務(wù)實例的心跳,Eureka  Server將會注銷該實例(默認(rèn)為90秒,通過eureka.instance.lease-expiration-duration-in-seconds配置)。當(dāng)Eureka  Server節(jié)點在短時間內(nèi)丟失過多的心跳時(比如發(fā)生了網(wǎng)絡(luò)分區(qū)故障),那么這個節(jié)點就會進入自我保護模式。

什么是自我保護模式?默認(rèn)配置下,如果Eureka  Server每分鐘收到心跳續(xù)約的數(shù)量低于一個閾值(instance的數(shù)量(60/每個instance的心跳間隔秒數(shù))自我保護系數(shù)),并且持續(xù)15分鐘,就會觸發(fā)自我保護。在自我保護模式中,Eureka  Server會保護服務(wù)注冊表中的信息,不再注銷任何服務(wù)實例。當(dāng)它收到的心跳數(shù)重新恢復(fù)到閾值以上時,該Eureka  Server節(jié)點就會自動退出自我保護模式。它的設(shè)計哲學(xué)前面提到過,那就是寧可保留錯誤的服務(wù)注冊信息,也不盲目注銷任何可能健康的服務(wù)實例。該模式可以通過eureka.server.enable-self-preservation  =  false來禁用,同時eureka.instance.lease-renewal-interval-in-seconds可以用來更改心跳間隔,eureka.server.renewal-percent-threshold可以用來修改自我保護系數(shù)(默認(rèn)0.85)。

ZooKeeper基于CP,不保證高可用,如果zookeeper正在選主,或者Zookeeper集群中半數(shù)以上機器不可用,那么將無法獲得數(shù)據(jù)。Eureka基于AP,能保證高可用,即使所有機器都掛了,也能拿到本地緩存的數(shù)據(jù)。作為注冊中心,其實配置是不經(jīng)常變動的,只有發(fā)版和機器出故障時會變。對于不經(jīng)常變動的配置來說,CP是不合適的,而AP在遇到問題時可以用犧牲一致性來保證可用性,既返回舊數(shù)據(jù),緩存數(shù)據(jù)。

所以理論上Eureka是更適合做注冊中心。而現(xiàn)實環(huán)境中大部分項目可能會使用ZooKeeper,那是因為集群不夠大,并且基本不會遇到用做注冊中心的機器一半以上都掛了的情況。所以實際上也沒什么大問題。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

網(wǎng)頁標(biāo)題:如何進行ZooKeeper與Eureka的比較
分享地址:http://jinyejixie.com/article44/psighe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計公司、企業(yè)網(wǎng)站制作、品牌網(wǎng)站設(shè)計做網(wǎng)站

廣告

聲明:本網(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)

搜索引擎優(yōu)化
凌源市| 乐山市| 锡林郭勒盟| 荣成市| 会东县| 滕州市| 瑞安市| 伊春市| 克山县| 芦山县| 邓州市| 鹿泉市| 彝良县| 灵丘县| 彭山县| 沈阳市| 铅山县| 略阳县| 邢台市| 鄱阳县| 赤水市| 福海县| 南开区| 大名县| 徐水县| 新巴尔虎左旗| 长丰县| 廉江市| 高陵县| 彰化市| 镇原县| 永昌县| 肃南| 桃园市| 雷州市| 江口县| 舞阳县| 星座| 晋宁县| 沂源县| 台东县|