服務發(fā)現(xiàn):服務端服務發(fā)現(xiàn)

背景

服務通常需要調(diào)用其他服務。單體應用中,服務通過語言級別的方法或者過程調(diào)用另外的服務媳友。在傳統(tǒng)的分布式部署中丛版,服務運行在固定,已知的地址(主機和端口)汹来,因此可以請求的通過HTTP/REST或其他RPC機制調(diào)用续膳。然而,一個現(xiàn)代的微服務應用通常運行在虛擬或者容器環(huán)境收班,服務實例數(shù)和它們的地址都在動態(tài)改變坟岔。

服務發(fā)現(xiàn)

因此,你需要實現(xiàn)一種機制摔桦,允許服務的客戶端向動態(tài)變更的一組短暫的服務實例發(fā)起請求社付。

問題

如何讓服務的客戶端 - API網(wǎng)關或者其他服務 - 發(fā)現(xiàn)服務實例的地址

限制

  • 每個服務在特定地址(主機和端口)實例暴露一個遠程API,比如HTTP/REST邻耕,或者Thrift等等
  • 服務實例的數(shù)量和他們的地址動態(tài)改變鸥咖。
  • 虛擬機和容器通常分配動態(tài)IP。
  • 服務實例數(shù)可能動態(tài)變化兄世。比如啼辣,EC2 Autoscaling Group基于負載確定實例數(shù)。

解決方案

當對一個服務發(fā)起請求時御滩,客戶端對運行在一個已知地址的路由(也叫做負載均衡)發(fā)起請求鸥拧。路由查詢服務注冊中心,可能構建在路由內(nèi)艾恼,將請求轉發(fā)給可用的服務實例住涉。

下圖介紹了這個模式的結構。

服務端服務發(fā)現(xiàn)

示例

AWS Elastic Load Balancer(ELB)是服務端服務發(fā)現(xiàn)路由的一個例子钠绍∮呱客戶端對ELB發(fā)起HTTP(s)請求(或者開放的TCP連接),這將在一組EC2實例間負載均衡這些請求柳爽。ELB不進可以負載均衡外部請求媳握,如果部署在VPC,也可以負載均衡內(nèi)部請求磷脯。ELB通常也有服務注冊中心一樣的功能蛾找。EC2實例通過API調(diào)用直接注冊,或者作為auto-scaling group的一部分自動注冊赵誓。

一些集群解決方案打毛,比如KubernetesMarathon 在每個主機都運行一個代理柿赊,擁有服務端服務發(fā)現(xiàn)路由的功能。為了訪問服務幻枉,客戶端采用分配給服務的端口來里恩杰本地代理碰声。本地代理將這部分請求轉發(fā)到集群中運行在某處的服務實例。

結果

服務端服務發(fā)現(xiàn)有幾個優(yōu)勢:

  • 對比客戶端服務發(fā)現(xiàn)熬甫,由于客戶端不在處理服務發(fā)現(xiàn)胰挑,因此代碼更簡單。相反椿肩,客戶端簡單的對路由發(fā)起請求
  • 一些云環(huán)境提供了這部分功能瞻颂,比如AWS Elastic Load Balancer

服務端服務發(fā)現(xiàn)也有如下弊端:

  • 除非它是云環(huán)境的一部分,路由必須是另外的系統(tǒng)組件郑象,需要安裝和配置贡这。它也需要備份以滿足可用性和容量。
  • 路由必須實現(xiàn)必要的通信協(xié)議(比如HTTP扣唱,gRPC藕坯,Thrift等等)团南,除非他是個基于TCP協(xié)議的路由
  • 比起使用客戶端服務發(fā)現(xiàn)噪沙,需要更多的網(wǎng)絡跳數(shù)

相關模式

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吐根,隨后出現(xiàn)的幾起案子正歼,更是在濱河造成了極大的恐慌,老刑警劉巖拷橘,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件局义,死亡現(xiàn)場離奇詭異,居然都是意外死亡冗疮,警方通過查閱死者的電腦和手機萄唇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來术幔,“玉大人另萤,你說我怎么就攤上這事∽缣簦” “怎么了四敞?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拔妥。 經(jīng)常有香客問我忿危,道長,這世上最難降的妖魔是什么没龙? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任铺厨,我火速辦了婚禮缎玫,結果婚禮上,老公的妹妹穿的比我還像新娘解滓。我一直安慰自己碘梢,他們只是感情好,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布伐蒂。 她就那樣靜靜地躺著煞躬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逸邦。 梳的紋絲不亂的頭發(fā)上恩沛,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音缕减,去河邊找鬼雷客。 笑死,一個胖子當著我的面吹牛桥狡,可吹牛的內(nèi)容都是我干的搅裙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼裹芝,長吁一口氣:“原來是場噩夢啊……” “哼部逮!你這毒婦竟也來了?” 一聲冷哼從身側響起嫂易,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤兄朋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后怜械,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颅和,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年缕允,在試婚紗的時候發(fā)現(xiàn)自己被綠了峡扩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡障本,死狀恐怖教届,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情彼绷,我是刑警寧澤巍佑,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站寄悯,受9級特大地震影響萤衰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜猜旬,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一脆栋、第九天 我趴在偏房一處隱蔽的房頂上張望倦卖。 院中可真熱鬧,春花似錦椿争、人聲如沸怕膛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褐捻。三九已至,卻和暖如春椅邓,著一層夾襖步出監(jiān)牢的瞬間柠逞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工景馁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留板壮,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓合住,卻偏偏與公主長得像绰精,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子透葛,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353