微服務(wù)注冊(cè)中心為什么要使用Consul弥锄?

一蟆沫、Eureka不建議使用

在選型微服務(wù)注冊(cè)中心時(shí),一定要長遠(yuǎn)考慮饭庞,SpringCloud提供了Eureka作為服務(wù)注冊(cè)中心舟山,我們可以開箱即用,但是累盗,對(duì)于服務(wù)注冊(cè)中心隨著業(yè)務(wù)需求的不斷變化若债,對(duì)服務(wù)注冊(cè)中心提出了更高要求,Eureka就不太適合了蠢琳,看到“Eureka 2.0 開源工作宣告停止,繼續(xù)使用風(fēng)險(xiǎn)自負(fù)”蓝牲。

eureka.png

這意味著如果開發(fā)者繼續(xù)使用作為 2.x 分支上現(xiàn)有工作 repo 一部分發(fā)布的代碼庫和工件搞旭,則將自負(fù)風(fēng)險(xiǎn),對(duì)此镇眷,專家建議開發(fā)者盡快將相關(guān)業(yè)務(wù)遷移到 Consul/ZooKeeper/Etcd等工具上翎嫡。

二、Consul與Zookeeper的區(qū)別

Consul是一個(gè)在國外流行的服務(wù)發(fā)現(xiàn)和配置共享的服務(wù)軟件具伍。本文翻譯自Consul的官方文檔圈驼,文中重點(diǎn)講述:在與主流同類軟件ZooKeeper、Doozerd以及Etcd比較時(shí)萤厅,Consul的優(yōu)勢(shì)所在靴迫。

ZooKeeper、Doozerd名挥、Etcd在架構(gòu)上都非常相似主守,它們都有服務(wù)節(jié)點(diǎn)(server node),而這些服務(wù)節(jié)點(diǎn)的操作都要求達(dá)到節(jié)點(diǎn)的仲裁數(shù)(通常蹋艺,節(jié)點(diǎn)的仲裁數(shù)遵循的是簡單多數(shù)原則)黄刚。此外,它們都是強(qiáng)一致性的涛救,并且提供各種原語。通過應(yīng)用程序內(nèi)部的客戶端lib庫检吆,這些原語可以用來構(gòu)建復(fù)雜的分布式系統(tǒng)蹭沛。

Consul在一個(gè)單一的數(shù)據(jù)中心內(nèi)部使用服務(wù)節(jié)點(diǎn)。在每個(gè)數(shù)據(jù)中心中摊灭,為了Consule能夠運(yùn)行帚呼,并且保持強(qiáng)一致性,Consul服務(wù)端需要仲裁眷蜈。然而沈自,Consul原生支持多數(shù)據(jù)中心,就像一個(gè)豐富gossip系統(tǒng)連接服務(wù)器節(jié)點(diǎn)和客戶端一樣枯途。

當(dāng)提供K/V存儲(chǔ)的時(shí)候柔袁,這些系統(tǒng)具有大致相同的語義异逐,讀取是強(qiáng)一致性的,并且在面對(duì)網(wǎng)絡(luò)分區(qū)的時(shí)候腥例,為了保持一致性酝润,讀取的可用性是可以犧牲的。然而构回,當(dāng)系統(tǒng)應(yīng)用于復(fù)雜情況時(shí),這種差異會(huì)變得更加明顯脐供。

這些系統(tǒng)提供的語義對(duì)開發(fā)人員構(gòu)建服務(wù)發(fā)現(xiàn)系統(tǒng)很有吸引力借跪,但更重要的是,強(qiáng)調(diào)開發(fā)人員要構(gòu)建這些特性歇由。ZooKeeper只提供一個(gè)原始的K/V值存儲(chǔ)果港,并要求開發(fā)人員構(gòu)建他們自己的系統(tǒng)來提供服務(wù)發(fā)現(xiàn)功能。相反的是赦肃,Consul提供了一個(gè)堅(jiān)固的框架公浪,這不僅僅是為了提供服務(wù)發(fā)現(xiàn)功能,也是為了減少推測(cè)工作和開發(fā)工作量厅各≡て猓客戶端只需簡單地完成服務(wù)注冊(cè)工作,然后使用一個(gè)DNS接口或者HTTP接口就可以執(zhí)行工作了憔古,而其他系統(tǒng)則需要你定制自己的解決方案淋袖。

一個(gè)令人信服的服務(wù)發(fā)現(xiàn)框架必須包含健康檢測(cè)功能即碗,并且考慮失敗的可能性。要是節(jié)點(diǎn)失敗或者服務(wù)故障了剥懒,即使開發(fā)人員知道節(jié)點(diǎn)A提供Foo服務(wù)也是沒用的初橘。Navie系統(tǒng)利用的是心跳充岛、周期性更新和TTLs批狱,這些系統(tǒng)不僅需要工作量與節(jié)點(diǎn)數(shù)量成線性關(guān)系,并且對(duì)服務(wù)器的固定數(shù)量提出了要求炒俱。此外爪膊,故障檢測(cè)窗口的存活時(shí)間至少要和TTL一樣長推盛。

ZooKeeper提供了臨時(shí)節(jié)點(diǎn),這些臨時(shí)節(jié)點(diǎn)就是K/V條目榔昔,當(dāng)客戶端斷開連接時(shí)瘪菌,這些條目會(huì)被刪除。雖然這些臨時(shí)節(jié)點(diǎn)比一個(gè)心跳系統(tǒng)更高級(jí)诵肛,但仍存在固有的擴(kuò)展性問題默穴,并且會(huì)增加客戶端的復(fù)雜性。與ZooKeeper服務(wù)器端連接時(shí)薛训,客戶端必須保持活躍仑氛,并且去做持續(xù)性連接。此外,ZooKeeper還需要胖客戶端嚎莉,而胖客戶端是很難編寫沛豌,并且胖客戶端會(huì)經(jīng)常導(dǎo)致調(diào)試質(zhì)詢赃额。

Consul使用一個(gè)完全不同的架構(gòu)進(jìn)行健康檢測(cè)跳芳。Consul客戶端可以運(yùn)行在集群中的每一個(gè)節(jié)點(diǎn)上竹勉,而不是擁有服務(wù)器節(jié)點(diǎn),這些Consul客戶端屬于一個(gè)gossip pool次乓,gossip pool提供了一些功能,包括分布式健康檢測(cè)票腰。gossip協(xié)議提供了一個(gè)高效的故障檢測(cè)工具杏慰,這個(gè)故障檢測(cè)工具可以應(yīng)用到任意規(guī)模的集群,而不僅僅是作用于特定的服務(wù)器組缘滥。同時(shí)完域,這個(gè)故障檢測(cè)工具也支持在本地進(jìn)行多種健康檢測(cè)。與此相反凹耙,ZooKeeper的臨時(shí)節(jié)點(diǎn)只是一個(gè)非常原始的活躍度檢測(cè)肠仪。因?yàn)橛辛?code>Consul,客戶端可以檢測(cè)web服務(wù)器是否正在返回200狀態(tài)碼意述,內(nèi)存利用率是否達(dá)到臨界點(diǎn)吮蛹,是否有足夠的數(shù)據(jù)存儲(chǔ)盤等潮针。此外,ZooKeeper會(huì)暴露系統(tǒng)的復(fù)雜性給客戶端每篷,為了避免ZooKeeper出現(xiàn)的這種情況,Consul只提供一個(gè)簡單HTTP接口子库。

Consul為服務(wù)發(fā)現(xiàn)仑嗅、健康檢測(cè)、K/V存儲(chǔ)和多數(shù)據(jù)中心提供了一流的支持无畔。為了支持任意存儲(chǔ)浑彰,而不僅僅是簡單的K/V存儲(chǔ),其他系統(tǒng)都要求工具和lib庫要率先建立颜价。然而诉濒,通過使用客戶端節(jié)點(diǎn),Consul提供了一個(gè)簡單的API专挪,這個(gè)API的開發(fā)只需要瘦客戶端就可以了片排, 而且寨腔,通過使用配置文件和DNS接口,開發(fā)人員可以建立完整的服務(wù)發(fā)現(xiàn)解決方案率寡,最終迫卢,達(dá)到避免開發(fā)API的目的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末冶共,一起剝皮案震驚了整個(gè)濱河市乾蛤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捅僵,老刑警劉巖家卖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異庙楚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)醋奠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門榛臼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窜司,你說我怎么就攤上這事沛善。” “怎么了塞祈?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵金刁,是天一觀的道長。 經(jīng)常有香客問我议薪,道長尤蛮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任斯议,我火速辦了婚禮产捞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哼御。我一直安慰自己坯临,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布恋昼。 她就那樣靜靜地躺著看靠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪液肌。 梳的紋絲不亂的頭發(fā)上挟炬,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音嗦哆,去河邊找鬼谤祖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吝秕,可吹牛的內(nèi)容都是我干的泊脐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼烁峭,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼容客!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起约郁,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤缩挑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后鬓梅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體供置,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年绽快,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芥丧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片紧阔。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖续担,靈堂內(nèi)的尸體忽然破棺而出擅耽,到底是詐尸還是另有隱情,我是刑警寧澤物遇,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布乖仇,位于F島的核電站,受9級(jí)特大地震影響询兴,放射性物質(zhì)發(fā)生泄漏乃沙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一诗舰、第九天 我趴在偏房一處隱蔽的房頂上張望警儒。 院中可真熱鬧,春花似錦始衅、人聲如沸呛牲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽平痰。三九已至,卻和暖如春诸老,著一層夾襖步出監(jiān)牢的瞬間隆夯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工别伏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蹄衷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓厘肮,卻偏偏與公主長得像愧口,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子类茂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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

  • 由于文章太長耍属,簡書放不下,完整文檔見Consul文檔巩检。 一厚骗、安裝 Consul Consul 的安裝很簡單,安裝 ...
    FlySheep_ly閱讀 10,134評(píng)論 1 13
  • 這個(gè)文章我們主要來說一下Consul的基本概念,以及其實(shí)現(xiàn)的內(nèi)部原理,和Eureka的比較冲秽。 1.什么是Consu...
    YellowStar5_閱讀 1,001評(píng)論 0 3
  • 一舍咖、Consul 是什么? Consul有多個(gè)組件锉桑,但總體而言谎仲,它是基礎(chǔ)架構(gòu)中的一款服務(wù)發(fā)現(xiàn)和配置的工具。 它提供...
    FlySheep_ly閱讀 13,204評(píng)論 0 13
  • 編號(hào)SYX002 今天是2018年9月3日刨仑,今天是正式的開啟之日。簡直就是暴虐我的一天夹姥,整整一天的時(shí)間杉武,連...
    大靜靜_60ac閱讀 120評(píng)論 0 0
  • 晚上和我家老楊出去逛了逛,鄰住長沙最繁華的地段辙售,卻很少有機(jī)會(huì)和時(shí)間出去逛逛(說到底是懶)轻抱。長沙這個(gè)城市,說不上多高...
    陶子_55f3閱讀 212評(píng)論 0 0