為什么不要把ZooKeeper用于服務(wù)發(fā)現(xiàn)窥摄?

首先再說為什么之前...

我們先來了解下ZooKeeper是什么...

ZooKeeper是Apache基金會下的一個開源的

高可用的分布式應(yīng)用協(xié)調(diào)服務(wù)

許多公司都把它用于服務(wù)發(fā)現(xiàn)....

但在云環(huán)境中,面對設(shè)備及網(wǎng)絡(luò)故障時的恢復(fù)能力是需要重點考慮的問題赞辩。因此恩袱,將應(yīng)用部署在云上快鱼,就必須要預(yù)見到硬件故障读第、網(wǎng)絡(luò)延遲以及網(wǎng)絡(luò)分區(qū)等問題曙博,進而構(gòu)建出恢復(fù)能力強的系統(tǒng)。那為什么說把ZooKeeper用于服務(wù)發(fā)現(xiàn)是個錯誤的做法呢...理由如下

在ZooKeeper中卦方,網(wǎng)絡(luò)分區(qū)中的客戶端節(jié)點無法到達Quorum時羊瘩,就會與ZooKeeper失去聯(lián)系泰佳,從而也就無法使用其服務(wù)發(fā)現(xiàn)機制盼砍。因此尘吗,在用于服務(wù)發(fā)現(xiàn)時,ZooKeeper無法很好地處理網(wǎng)絡(luò)分區(qū)問題浇坐。作為一個協(xié)調(diào)服務(wù)睬捶,這沒問題。但對于服務(wù)發(fā)現(xiàn)來說近刘,信息中可能包含錯誤要好于沒有信息擒贸。雖然可以通過客戶端緩存和其它技術(shù)彌補這種缺陷,像PinterestAirbnb等公司所做的那樣觉渴,但這并不能從根本上解決問題介劫,如果Quorum完全不可用,或者集群分區(qū)和客戶端都恰好連接到了不屬于這個Quorum但仍然健康的節(jié)點案淋,那么客戶端狀態(tài)仍將丟失座韵。

更重要地,上述做法的本質(zhì)是試圖用緩存提高一個一致性系統(tǒng)的可用性踢京,即在一個CP系統(tǒng)之上構(gòu)建AP系統(tǒng)誉碴,這根本就是錯誤的方法。服務(wù)發(fā)現(xiàn)系統(tǒng)從設(shè)計之初就應(yīng)該針對可用性而設(shè)計瓣距。

拋開CAP理論不說黔帕,ZooKeeper的設(shè)置和維護非常困難,以致Knewton多次因為錯誤的使用出現(xiàn)問題蹈丸。一些看似很簡單的事情成黄,實際操作起來也非常容易出錯,如在客戶端重建Watcher逻杖,處理Session和異常慨默。另外,ZooKeeper本身確實也存在一些問題弧腥,如ZOOKEEPER-1159厦取、ZOOKEEPER-1576。

由于這些問題的存在管搪,他們切換到了Eureka虾攻。這是一個由Netflix開發(fā)的、開源的服務(wù)發(fā)現(xiàn)解決方案更鲁,具有可用性高霎箍、恢復(fù)能力強的特點。相比之下...它有如下優(yōu)點....

如果一個服務(wù)器出現(xiàn)問題澡为,Eureka不需要任何類型的選舉漂坏,客戶端會自動切換并連接到一個新的Eureka服務(wù)器。當(dāng)它恢復(fù)時,可以自動加入Eureka節(jié)點集群顶别。而且谷徙,按照設(shè)計,它可以在零停機的情況下處理更廣泛的網(wǎng)絡(luò)分區(qū)問題驯绎。在出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況下完慧,Eureka將繼續(xù)接受新的注冊并發(fā)布。這可以確保新增服務(wù)仍然可以供分區(qū)同側(cè)的任意客戶端使用剩失。

Eureka有一個服務(wù)心跳的概念屈尼,可以阻止過期數(shù)據(jù):如果一個服務(wù)長時間沒有發(fā)送心跳,那么Eureka將從服務(wù)注冊中將其刪除拴孤。但在出現(xiàn)網(wǎng)絡(luò)分區(qū)脾歧、Eureka在短時間內(nèi)丟失過多客戶端時,它會停用這一機制演熟,進入“自我保護模式”涨椒。網(wǎng)絡(luò)恢復(fù)后,它又會自動退出該模式绽媒。這樣蚕冬,雖然它保留的數(shù)據(jù)中可能存在錯誤,卻不會丟失任何有效數(shù)據(jù)是辕。

Eureka在客戶端會有緩存囤热。即使所有Eureka服務(wù)器不可用,服務(wù)注冊信息也不會丟失获三。緩存在這里是恰當(dāng)?shù)呐园驗樗辉谒蠩ureka服務(wù)器都沒響應(yīng)的情況下才會用到。 Eureka就是為服務(wù)發(fā)現(xiàn)而構(gòu)建的疙教。它提供了一個客戶端庫棺聊,該庫提供了服務(wù)心跳、服務(wù)健康檢查贞谓、自動發(fā)布及緩存刷新等功能限佩。使用ZooKeeper,這些功能都需要自己實現(xiàn)裸弦。

管理簡單祟同,很容易添加和刪除節(jié)點。它還提供了一個清晰簡潔的網(wǎng)頁理疙,上面列出了所有的服務(wù)及其健康狀況晕城。

Eureka還提供了RESTAPI,使用戶可以將其集成到其它可能的用途和查詢機制窖贤。

總之砖顷,云平臺并不總是可靠...

服務(wù)發(fā)現(xiàn)需要具備盡可能高的可用性和恢復(fù)能力...

Eureka恰恰是針對這種情況而設(shè)計的...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贰锁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子滤蝠,更是在濱河造成了極大的恐慌豌熄,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件几睛,死亡現(xiàn)場離奇詭異,居然都是意外死亡粤攒,警方通過查閱死者的電腦和手機所森,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夯接,“玉大人焕济,你說我怎么就攤上這事】福” “怎么了晴弃?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逊拍。 經(jīng)常有香客問我上鞠,道長,這世上最難降的妖魔是什么芯丧? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任芍阎,我火速辦了婚禮,結(jié)果婚禮上缨恒,老公的妹妹穿的比我還像新娘谴咸。我一直安慰自己,他們只是感情好骗露,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布岭佳。 她就那樣靜靜地躺著,像睡著了一般萧锉。 火紅的嫁衣襯著肌膚如雪珊随。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天柿隙,我揣著相機與錄音玫恳,去河邊找鬼。 笑死优俘,一個胖子當(dāng)著我的面吹牛京办,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播帆焕,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惭婿,長吁一口氣:“原來是場噩夢啊……” “哼不恭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起财饥,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤换吧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后钥星,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沾瓦,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年谦炒,在試婚紗的時候發(fā)現(xiàn)自己被綠了贯莺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡宁改,死狀恐怖缕探,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情还蹲,我是刑警寧澤爹耗,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站谜喊,受9級特大地震影響潭兽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜斗遏,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一讼溺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧最易,春花似錦怒坯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嬉荆,卻和暖如春归敬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鄙早。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工汪茧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人限番。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓舱污,卻偏偏與公主長得像,于是被迫代替她去往敵國和親弥虐。 傳聞我的和親對象是個殘疾皇子扩灯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容