被妖魔化的服務(wù)發(fā)現(xiàn)原來這么簡(jiǎn)單

微服務(wù)在當(dāng)今的互聯(lián)網(wǎng)架構(gòu)中的重要性我在這里就不多說了僵驰,隨著微服務(wù)的大范圍應(yīng)用想际,服務(wù)發(fā)現(xiàn)這個(gè)詞也變的越來越火熱划栓。在平時(shí)的工作中,我發(fā)現(xiàn)現(xiàn)在很多人喜歡把一些很簡(jiǎn)單的事情說的很復(fù)雜损姜,比如什么BFF架構(gòu)饰剥,這中臺(tái)那中臺(tái)的。其實(shí)服務(wù)發(fā)現(xiàn)也是一樣摧阅,很多文章把這塊內(nèi)容寫的過于妖魔化汰蓉,導(dǎo)致很多人看起來云里霧里的感覺好像很高深的樣子,接下來就放棄這塊了棒卷。其實(shí)服務(wù)發(fā)現(xiàn)是個(gè)很簡(jiǎn)單的過程顾孽,稍微有點(diǎn)編碼基礎(chǔ)的人都能看懂。今天對(duì)此做一個(gè)總結(jié)娇跟,如果對(duì)您有用岩齿,記得點(diǎn)個(gè)贊點(diǎn)個(gè)關(guān)注太颤,如果有問題也可以留言苞俘,我看到了會(huì)第一時(shí)間回復(fù)。

傳統(tǒng)的客戶端和服務(wù)端的交互模式

  • 服務(wù)端1 2 3 分別提供了一個(gè)服務(wù)的ip端口號(hào)
  • 這里的客戶端不是咱們狹義理解的客戶端app或者前端龄章,客戶端也可以是一個(gè)服務(wù)端吃谣,比如你在一個(gè)golang項(xiàng)目中需要不同的服務(wù)等,那么你這個(gè)golang項(xiàng)目就是上圖中的客戶端做裙,這一點(diǎn)尤其要注意岗憋。
  • 如果說的準(zhǔn)確一點(diǎn),這里的客戶端應(yīng)該叫做服務(wù)消費(fèi)者,服務(wù)端應(yīng)該叫做服務(wù)提供者

上面這種傳統(tǒng)的交互模式看著沒什么問題锚贱,但是其實(shí)可用性并沒那么好仔戈,首先比如你的服務(wù)端2掛了,但是客戶端還是不知道的,依然會(huì)繼續(xù)請(qǐng)求监徘,這樣可用性當(dāng)然是大大的下降的晋修,所以接下來就引發(fā)出了我們接下來要講的服務(wù)發(fā)現(xiàn)模式

服務(wù)發(fā)現(xiàn)模式

大概流程


其實(shí)所謂的服務(wù)發(fā)現(xiàn),就是服務(wù)消費(fèi)者在調(diào)用服務(wù)提供者提供的服務(wù)的時(shí)候凰盔,多了一層服務(wù)中介墓卦。服務(wù)中介中有很多key/value鍵值對(duì),key是服務(wù)名稱户敬,value是服務(wù)提供者的地址列表落剪。當(dāng)你新增一個(gè)服務(wù)提供者的時(shí)候,就往服務(wù)中介中寫入kv數(shù)據(jù)尿庐,這個(gè)過程叫做服務(wù)注冊(cè) 當(dāng)你請(qǐng)求一個(gè)服務(wù)的時(shí)候忠怖,直接拿著key去服務(wù)中介中取對(duì)應(yīng)的value,也就是服務(wù)提供者的地址列表屁倔,然后去請(qǐng)求就可以了脑又。

當(dāng)服務(wù)提供者節(jié)點(diǎn)掛掉時(shí),要求服務(wù)能夠及時(shí)取消注冊(cè)锐借,比便及時(shí)通知消費(fèi)者重新獲取服務(wù)地址问麸。

當(dāng)服務(wù)提供者新加入時(shí),要求服務(wù)中介能及時(shí)告知服務(wù)消費(fèi)者钞翔,你要不要嘗試一下新的服務(wù)严卖。

基本過程如下圖
  • 步驟1:每次新增加一個(gè)服務(wù)提供者,需要先去服務(wù)注冊(cè)中心注冊(cè)一個(gè)key/value(服務(wù)名稱/服務(wù)提供者的地址列表)
  • 步驟2:服務(wù)調(diào)用者不直接調(diào)用服務(wù)提供者布轿,而是拿著標(biāo)志(也就是上面注冊(cè)的key(服務(wù)名稱))去服務(wù)注冊(cè)中心查找對(duì)應(yīng)的value(服務(wù)提供者的地址列表)
  • 步驟3:服務(wù)注冊(cè)中心會(huì)告訴服務(wù)調(diào)用者對(duì)應(yīng)的key(服務(wù)名稱)是否有value(服務(wù)提供者的地址列表)哮笆,有的話會(huì)把對(duì)應(yīng)的value(服務(wù)提供者的地址列表)返回給服務(wù)調(diào)用者
  • 步驟4:服務(wù)調(diào)用者會(huì)拿著返回的value(服務(wù)提供者的地址列表)去請(qǐng)求對(duì)應(yīng)的服務(wù)

服務(wù)發(fā)現(xiàn)是否太過簡(jiǎn)單?

上面的過程看起來好像是有點(diǎn)太簡(jiǎn)單了汰扭,而且看起來也沒解決什么問題呀稠肘,而且好像還徒增了復(fù)雜度。其實(shí)并不是這樣的萝毛。

服務(wù)提供者進(jìn)程如果被kill -9暴力殺死项阴,服務(wù)消費(fèi)者不知道怎么辦?

這個(gè)不用擔(dān)心笆包,服務(wù)發(fā)現(xiàn)中引入服務(wù)被防浚活和檢查機(jī)制,并更換數(shù)據(jù)結(jié)構(gòu)庵佣。服務(wù)提供者需要每隔5秒左右向服務(wù)發(fā)現(xiàn)匯報(bào)存活歉胶,服務(wù)發(fā)現(xiàn)將服務(wù)地址和匯報(bào)時(shí)間記錄在kv中。服務(wù)中介需要每隔10秒左右檢查kv數(shù)據(jù)結(jié)構(gòu)巴粪,踢掉匯報(bào)時(shí)間嚴(yán)重落后的服務(wù)地址項(xiàng)通今。這樣就可以準(zhǔn)實(shí)時(shí)地保證服務(wù)列表中服務(wù)地址的有效性粥谬。這也就是我們說的服務(wù)健康檢查

服務(wù)列表變動(dòng)時(shí)如何通知消費(fèi)者?

第一種方法是輪詢,消費(fèi)者需要每隔幾秒查詢服務(wù)列表是否有改變辫塌。如果服務(wù)很多帝嗡,服務(wù)列表很大,消費(fèi)者很多璃氢,那么服務(wù)發(fā)現(xiàn)也會(huì)有一定的壓力
第二種方法是訂閱消費(fèi)模式哟玷,服務(wù)消費(fèi)者訂閱一個(gè)消息,服務(wù)提供者有變動(dòng)直接往消息中發(fā)送對(duì)應(yīng)變化就行一也。

常見的服務(wù)發(fā)現(xiàn)方案

- DNS
- mDNS
- Zookeeper
- Etcd
- Consul

具體方案大概了解一下就行巢寡,后面我們會(huì)詳細(xì)介紹一下Consul,那么我們下期再見吧椰苟。如果這篇文章有幫助到你抑月,記得點(diǎn)贊分享哦,我們下期見舆蝴。

本文由mdnice多平臺(tái)發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谦絮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子洁仗,更是在濱河造成了極大的恐慌层皱,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赠潦,死亡現(xiàn)場(chǎng)離奇詭異叫胖,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)她奥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門瓮增,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哩俭,你說我怎么就攤上這事绷跑。” “怎么了凡资?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵砸捏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我讳苦,道長(zhǎng)带膜,這世上最難降的妖魔是什么吩谦? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任鸳谜,我火速辦了婚禮,結(jié)果婚禮上式廷,老公的妹妹穿的比我還像新娘咐扭。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布蝗肪。 她就那樣靜靜地躺著袜爪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪薛闪。 梳的紋絲不亂的頭發(fā)上辛馆,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音豁延,去河邊找鬼昙篙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诱咏,可吹牛的內(nèi)容都是我干的苔可。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼袋狞,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼焚辅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起苟鸯,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤同蜻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后早处,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體埃仪,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年陕赃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卵蛉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡么库,死狀恐怖傻丝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诉儒,我是刑警寧澤葡缰,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站忱反,受9級(jí)特大地震影響泛释,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜温算,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一怜校、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧注竿,春花似錦茄茁、人聲如沸魂贬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽付燥。三九已至,卻和暖如春愈犹,著一層夾襖步出監(jiān)牢的瞬間键科,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國打工漩怎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萝嘁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓扬卷,卻偏偏與公主長(zhǎng)得像牙言,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子怪得,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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