微服務(wù)API網(wǎng)關(guān)框架課程

課程學(xué)習(xí)地址:

http://www.xuetuwuyou.com/course/386

課程出自學(xué)途無(wú)憂網(wǎng):http://www.xuetuwuyou.com

? ?最近 微服務(wù)架構(gòu)在項(xiàng)目中的應(yīng)用越來(lái)越多篮绰,我們知道在微服務(wù)架構(gòu)風(fēng)格中官卡,一個(gè)大應(yīng)用被拆分成為了多個(gè)小的服務(wù)系統(tǒng)提供出來(lái),這些小的系統(tǒng)他們可以自成體系寂汇,也就是說(shuō)這些小系統(tǒng)可以擁有自己的數(shù)據(jù)庫(kù)彪杉,框架甚至語(yǔ)言等嘴办,這些小系統(tǒng)通常以提供 Rest Api 風(fēng)格的接口來(lái)被 H5, Android, IOS 以及第三方應(yīng)用程序調(diào)用季率。

? ? ? ? 但是在UI上進(jìn)行展示的時(shí)候,我們通常需要在一個(gè)界面上展示很多數(shù)據(jù)丐怯,這些數(shù)據(jù)可能來(lái)自于不同的微服務(wù)中喷好,舉個(gè)例子。

? ? ? ? 在一個(gè)電商系統(tǒng)中读跷,查看一個(gè)商品詳情頁(yè)梗搅,這個(gè)商品詳情頁(yè)包含商品的標(biāo)題,價(jià)格,庫(kù)存无切,評(píng)論等荡短,這些數(shù)據(jù)對(duì)于后端來(lái)說(shuō)可能是位于不同的微服務(wù)系統(tǒng)之中,可能我后臺(tái)的系統(tǒng)是這樣來(lái)拆分我的服務(wù)的:

? ? ? ? 1哆键、產(chǎn)品服務(wù) - 負(fù)責(zé)提供商品的標(biāo)題掘托,描述,規(guī)格等籍嘹。

? ? ? ? 2闪盔、價(jià)格服務(wù) - 負(fù)責(zé)對(duì)產(chǎn)品進(jìn)行定價(jià),價(jià)格策略計(jì)算辱士,促銷(xiāo)價(jià)等泪掀。

? ? ? ? 3、庫(kù)存服務(wù) - 負(fù)責(zé)產(chǎn)品庫(kù)存颂碘。

? ? ? ? 4异赫、評(píng)價(jià)服務(wù) - 負(fù)責(zé)用戶(hù)對(duì)商品的評(píng)論,回復(fù)等头岔。

? ? ? ? 現(xiàn)在塔拳,商品詳情頁(yè)需要從這些微服務(wù)中拉取相應(yīng)的信息,問(wèn)題來(lái)了峡竣?

? ? ? ? 問(wèn)題

? ? ? ? 由于我們使用的服務(wù)系統(tǒng)架構(gòu)靠抑,所以沒(méi)辦法像傳統(tǒng)單體應(yīng)用一樣依靠數(shù)據(jù)庫(kù)的 join 查詢(xún)來(lái)得到最終結(jié)果,那么如何才能訪問(wèn)各個(gè)服務(wù)呢澎胡?

? ? ? ? 按照微服務(wù)設(shè)計(jì)的指導(dǎo)原則孕荠,我們的微服務(wù)可能存在下面的問(wèn)題:

? ? ? ? 服務(wù)使用了多種協(xié)議,因?yàn)椴煌膮f(xié)議有不同的應(yīng)場(chǎng)景用攻谁,比如可能同時(shí)使用 HTTP, AMQP, gRPC 等。

? ? ? ? 服務(wù)的劃分可能隨著時(shí)間而變化弯予。

? ? ? ? 服務(wù)的實(shí)例或者Host+端口可能會(huì)動(dòng)態(tài)的變化戚宦。

? ? ? ? 那么,對(duì)于前端的UI需求也可能會(huì)有以下幾種:

? ? ? ? 粗粒度的API锈嫩,而微服務(wù)通常提供的細(xì)粒度的API受楼,對(duì)于UI來(lái)說(shuō)如果要調(diào)用細(xì)粒度的api可能需要調(diào)用很多次,這是個(gè)不小的問(wèn)題呼寸。

? ? ? ? 不同的客戶(hù)端設(shè)備可能需要不同的數(shù)據(jù)艳汽。Web,H5,APP

? ? ? ? 不同設(shè)備的網(wǎng)絡(luò)性能,對(duì)于多個(gè)api來(lái)說(shuō)对雪,這個(gè)訪問(wèn)需要轉(zhuǎn)移的服務(wù)端會(huì)快得多

? ? ? ? 以上河狐,就是我們構(gòu)建微服務(wù)的過(guò)程中可能會(huì)遇到的問(wèn)題。那么如何解決呢?

? ? ? ? 這種情況下馋艺, API 網(wǎng)關(guān)(API Gataway)誕生了栅干。

? ? ? ? API 網(wǎng)關(guān)

? ? ? API網(wǎng)關(guān)是一個(gè)服務(wù)器,是系統(tǒng)的唯一入口捐祠。從面向?qū)ο笤O(shè)計(jì)的角度看碱鳞,它與外觀模式類(lèi)似。API網(wǎng)關(guān)封裝了系統(tǒng)內(nèi)部架構(gòu)踱蛀,為每個(gè)客戶(hù)端提供一個(gè)定制的API窿给。它可能還具有其它職責(zé),如身份驗(yàn)證率拒、監(jiān)控填大、負(fù)載均衡、緩存俏橘、請(qǐng)求分片與管理允华、靜態(tài)響應(yīng)處理。

? ? ? ? API網(wǎng)關(guān)方式的核心要點(diǎn)是寥掐,所有的客戶(hù)端和消費(fèi)端都通過(guò)統(tǒng)一的網(wǎng)關(guān)接入微服務(wù)靴寂,在網(wǎng)關(guān)層處理所有的非業(yè)務(wù)功能。通常召耘,網(wǎng)關(guān)也是提供REST/HTTP的訪問(wèn)API百炬。服務(wù)端通過(guò)API-GW注冊(cè)和管理服務(wù)。

? ? ? API網(wǎng)關(guān)網(wǎng)關(guān)的價(jià)值:

? ? ? 網(wǎng)關(guān)層對(duì)外部和內(nèi)部進(jìn)行了隔離污它,保障了后臺(tái)服務(wù)的安全性剖踊。

? ? ? 對(duì)外訪問(wèn)控制由網(wǎng)絡(luò)層面轉(zhuǎn)換成了運(yùn)維層面,減少變更的流程和錯(cuò)誤成本

? ? ? 減少客戶(hù)端與服務(wù)的耦合衫贬,服務(wù)可以獨(dú)立發(fā)展德澈。通過(guò)網(wǎng)關(guān)層來(lái)做映射。

? ? ? 通過(guò)網(wǎng)關(guān)層聚合固惯,減少外部訪問(wèn)的頻次梆造,提升訪問(wèn)效率。

? ? ? 節(jié)約后端服務(wù)開(kāi)發(fā)成本葬毫,減少上線風(fēng)險(xiǎn)镇辉。

? ? ? 為服務(wù)熔斷,灰度發(fā)布贴捡,線上測(cè)試提供簡(jiǎn)單方案忽肛。

? ? ? 當(dāng)然現(xiàn)在市面上的Api網(wǎng)關(guān)開(kāi)源項(xiàng)目,有以下項(xiàng)目

? ? ? 1烂斋、Tyk:Tyk是一個(gè)開(kāi)放源碼的API網(wǎng)關(guān)屹逛,它是快速础废、可擴(kuò)展和現(xiàn)代的。Tyk提供了一個(gè)API管理平臺(tái)煎源,其中包括API網(wǎng)關(guān)色迂、API分析、開(kāi)發(fā)人員門(mén)戶(hù)和API管理面板手销。Try 是一個(gè)基于Go實(shí)現(xiàn)的網(wǎng)關(guān)服務(wù)歇僧。

? ? ? 2、Kong:Kong是一個(gè)可擴(kuò)展的開(kāi)放源碼API Layer(也稱(chēng)為API網(wǎng)關(guān)或API中間件)锋拖。Kong 在任何RESTful API的前面運(yùn)行诈悍,通過(guò)插件擴(kuò)展,它提供了超越核心平臺(tái)的額外功能和服務(wù)兽埃。

? ? ? 3侥钳、Orange:和Kong類(lèi)似也是基于OpenResty的一個(gè)API網(wǎng)關(guān)程序,是由國(guó)人開(kāi)發(fā)的柄错。

? ? ? 4舷夺、Netflix zuul:Zuul是一種提供動(dòng)態(tài)路由、監(jiān)視售貌、彈性给猾、安全性等功能的邊緣服務(wù)。Zuul是Netflix出品的一個(gè)基于JVM路由和服務(wù)端的負(fù)載均衡器颂跨。

? ? ? 5敢伸、apiaxle: Nodejs 實(shí)現(xiàn)的一個(gè) API 網(wǎng)關(guān)。

? ? ? 6恒削、api-umbrella: Ruby 實(shí)現(xiàn)的一個(gè) API 網(wǎng)關(guān)池颈。

? ? ? 老顧這系列課程就給大家介紹一下nignx + lua方式的網(wǎng)關(guān)框架,也是很多公司常用的網(wǎng)關(guān)框架

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钓丰,一起剝皮案震驚了整個(gè)濱河市躯砰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斑粱,老刑警劉巖弃揽,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異则北,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)痕慢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)尚揣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人掖举,你說(shuō)我怎么就攤上這事快骗。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵方篮,是天一觀的道長(zhǎng)名秀。 經(jīng)常有香客問(wèn)我,道長(zhǎng)藕溅,這世上最難降的妖魔是什么匕得? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮巾表,結(jié)果婚禮上汁掠,老公的妹妹穿的比我還像新娘。我一直安慰自己集币,他們只是感情好考阱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著鞠苟,像睡著了一般乞榨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上当娱,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天吃既,我揣著相機(jī)與錄音,去河邊找鬼趾访。 笑死态秧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的扼鞋。 我是一名探鬼主播申鱼,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼云头!你這毒婦竟也來(lái)了捐友?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤溃槐,失蹤者是張志新(化名)和其女友劉穎匣砖,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體昏滴,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猴鲫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谣殊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拂共。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖姻几,靈堂內(nèi)的尸體忽然破棺而出宜狐,到底是詐尸還是另有隱情势告,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布抚恒,位于F島的核電站咱台,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏俭驮。R本人自食惡果不足惜回溺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望表鳍。 院中可真熱鬧馅而,春花似錦、人聲如沸譬圣。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)厘熟。三九已至屯蹦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绳姨,已是汗流浹背登澜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留飘庄,地道東北人脑蠕。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像跪削,于是被迫代替她去往敵國(guó)和親谴仙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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