Api Gateway介紹

介紹

我們知道在微服務(wù)架構(gòu)風(fēng)格中挚赊,一個大應(yīng)用被拆分成為了多個小的服務(wù)系統(tǒng)提供出來诡壁,這些小的系統(tǒng)他們可以自成體系,也就是說這些小系統(tǒng)可以擁有自己的數(shù)據(jù)庫荠割,框架甚至語言等妹卿,這些小系統(tǒng)通常以提供 Rest Api 風(fēng)格的接口來被 H5, Android, IOS 以及第三方應(yīng)用程序調(diào)用。現(xiàn)在我們的結(jié)構(gòu)就是這個情況蔑鹦。

為什么需要使用API GateWay

現(xiàn)狀:

無API Gateway的情況

由圖可以看出夺克,在沒有API網(wǎng)關(guān)作為統(tǒng)一出口的情況下,需要調(diào)用方自己組合各種服務(wù)嚎朽,而且容易讓調(diào)用方感知后端各種服務(wù)的存在铺纽,各個需要各個做很多相同的工作。

加入API Gateway之后:


加入API gateway 之后

加入API Gateway之后的作用

一般也會把路由哟忍,安全狡门,限流,緩存锅很,日志其馏,監(jiān)控,重試爆安,熔斷等都放到 API 網(wǎng)關(guān)來做叛复,然后服務(wù)層就完全脫離這些東西,純粹的做業(yè)務(wù)扔仓,也能夠很好的保證業(yè)務(wù)代碼的干凈褐奥,不用關(guān)心安全,壓力等方面的問題翘簇。

由于在我們公司基礎(chǔ)服務(wù)已經(jīng)提供了一個API Gateway 撬码,我們只是基于之前的Api Gateway進行一個補充,使之使用我們的業(yè)務(wù)缘揪,所以我們自己的API Gateway的功能就不需要那么多耍群。

1.路由义桂、重試? 公司的API Gateway已經(jīng)是有了路由找筝,基于域名到IP的路由蹈垢,我們也是要做路由,但是路由是統(tǒng)一我們事業(yè)部的大域名下分發(fā)到規(guī)范的小域名(不做IP袖裕、機器的管理 如下圖)曹抬。這樣可以防止域名泛濫使用,不規(guī)范 (etca急鳄、etcb谤民、etcc ……?這些根本猜不出意義的域名)

API Gateway路由

除了路由就是一些通用的服務(wù),主要是為了防止模塊服務(wù)提供方陷入繁瑣的邏輯校驗疾宏,安全校驗

2.鑒權(quán): 通過APIGateway對訪問進行統(tǒng)一鑒權(quán)张足,不需要每個應(yīng)用單獨對調(diào)用方進行鑒權(quán),應(yīng)用可以專注業(yè)務(wù)坎藐。

3.限流为牍、熔斷? 在配置路由規(guī)則的時候可以定制化限流、熔斷策略岩馍。

4.日志服務(wù) 對訪問?

5.監(jiān)控??可以根據(jù)唯一請求Id碉咆,監(jiān)控調(diào)用流程,以及調(diào)用的響應(yīng)時間


API Gateway的優(yōu)點和缺點

采用API Gateway也是優(yōu)缺點并存的蛀恩。API Gateway的一個最大好處是封裝應(yīng)用內(nèi)部結(jié)構(gòu)疫铜。相比起來調(diào)用指定的服務(wù),客戶端直接跟gatway交互更簡單點双谆。服務(wù)提供方也能夠減輕繁瑣的安全日志等判斷壳咕。API Gateway也有一些缺點。它是一個高可用的組件顽馋,必須要開發(fā)囱井、部署和管理。還有一個問題趣避,所有的流量都需要通過API Gateway庞呕,所以它可能成為開發(fā)的一個瓶頸。


可選方案:

Zuul:?Netflix Zuul程帕,作為Spring cloud 中的一員住练,作為其中的api gateway,為服務(wù)架構(gòu)提供前置保護作用愁拭。屬于Spring cloud體系中讲逛,所以基于Java, Spring boot 岭埠,可以更好的集成到系統(tǒng)中盏混。

Kong:?Kong 是一個現(xiàn)成 的 api gateway 的解決方案蔚鸥,它在 nginx 上進行了開發(fā)。?


最終結(jié)果


結(jié)構(gòu)圖

Zuul的性能许赃,單臺機器? 600 tps

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末止喷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子混聊,更是在濱河造成了極大的恐慌弹谁,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件句喜,死亡現(xiàn)場離奇詭異预愤,居然都是意外死亡,警方通過查閱死者的電腦和手機咳胃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門植康,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人展懈,你說我怎么就攤上這事销睁。” “怎么了标沪?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵榄攀,是天一觀的道長。 經(jīng)常有香客問我金句,道長檩赢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任违寞,我火速辦了婚禮贞瞒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘趁曼。我一直安慰自己军浆,他們只是感情好,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布挡闰。 她就那樣靜靜地躺著乒融,像睡著了一般。 火紅的嫁衣襯著肌膚如雪摄悯。 梳的紋絲不亂的頭發(fā)上赞季,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機與錄音奢驯,去河邊找鬼申钩。 笑死,一個胖子當著我的面吹牛瘪阁,可吹牛的內(nèi)容都是我干的撒遣。 我是一名探鬼主播邮偎,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼义黎!你這毒婦竟也來了禾进?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤轩缤,失蹤者是張志新(化名)和其女友劉穎命迈,沒想到半個月后贩绕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體火的,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年淑倾,在試婚紗的時候發(fā)現(xiàn)自己被綠了馏鹤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡娇哆,死狀恐怖湃累,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情碍讨,我是刑警寧澤治力,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站勃黍,受9級特大地震影響宵统,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜覆获,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一马澈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弄息,春花似錦痊班、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至缨称,卻和暖如春凝果,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背具钥。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工豆村, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骂删。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓掌动,卻偏偏與公主長得像四啰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子粗恢,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

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