新聞中心
【】API網(wǎng)關(guān)是對(duì)微服務(wù)體系結(jié)構(gòu)樣式的一個(gè)關(guān)鍵結(jié)果的響應(yīng):服務(wù)及其接口的激增。API網(wǎng)關(guān)的核心目的是簡(jiǎn)化和穩(wěn)定暴露給客戶端的接口。

庫(kù)爾勒網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,庫(kù)爾勒網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為庫(kù)爾勒近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的庫(kù)爾勒做網(wǎng)站的公司定做!
除此之外,由于API網(wǎng)關(guān)在體系結(jié)構(gòu)中的獨(dú)特位置,因此可以實(shí)現(xiàn)多種附加功能,例如監(jiān)視,日志記錄,安全性,負(fù)載平衡和流量操縱。
API網(wǎng)關(guān)類似于Facade設(shè)計(jì)模式,但應(yīng)用于網(wǎng)絡(luò)級(jí)別。這兩種情況的目標(biāo)都是提供一個(gè)簡(jiǎn)化的接口配置文件,以隱藏系統(tǒng)的復(fù)雜性??梢栽谙聢D中看到簡(jiǎn)單的API網(wǎng)關(guān)思路。
??
簡(jiǎn)化的界面
API網(wǎng)關(guān)的作用是將客戶端與服務(wù)解耦,并在此過(guò)程中為入站和出站流量提供單點(diǎn)聯(lián)系。
微服務(wù)后端可能涉及許多交互服務(wù),這些服務(wù)的URL和協(xié)議可能是異構(gòu)的。API網(wǎng)關(guān)可以為客戶端提供一個(gè)簡(jiǎn)化的交互界面。在某種意義上,這就像一個(gè)簡(jiǎn)化代理。
此外,API網(wǎng)關(guān)可能更復(fù)雜,能夠接受單個(gè)請(qǐng)求,檢索必要的資源,并將它們組合成單個(gè)響應(yīng)。例如,對(duì)用戶概要文件的請(qǐng)求可能檢索用戶詳細(xì)信息、最近的消息和興趣。網(wǎng)關(guān)可以接收單個(gè)請(qǐng)求,從每個(gè)必要的服務(wù)請(qǐng)求數(shù)據(jù),然后將它們統(tǒng)一為單個(gè)響應(yīng)。
這種功能需要在架構(gòu)級(jí)別上進(jìn)行編排,并對(duì)其他微服務(wù)組件(如斷路器和服務(wù)網(wǎng))產(chǎn)生影響。
因?yàn)锳PI網(wǎng)關(guān)能夠轉(zhuǎn)換后端使用的協(xié)議和URL,所以它很適合幫助遷移服務(wù)。也就是說(shuō),API網(wǎng)關(guān)在某種程度上可以隱藏后端發(fā)生的更改。
API穩(wěn)定性
API網(wǎng)關(guān)還可以提高客戶端與服務(wù)進(jìn)行交互的API的穩(wěn)定性。網(wǎng)關(guān)可以平滑那些可能破壞客戶端或要求客戶端進(jìn)行更改的細(xì)微變化,開發(fā)人員可以使用網(wǎng)關(guān)將一些流量導(dǎo)向服務(wù)的新版本來(lái)測(cè)試它們。
通常,API網(wǎng)關(guān)為客戶端提供單點(diǎn)聯(lián)系點(diǎn),這有助于將更改對(duì)后端服務(wù)的影響最小化。服務(wù)越復(fù)雜,更改越頻繁,網(wǎng)關(guān)的功能就越有價(jià)值。
請(qǐng)注意,API網(wǎng)關(guān)還可以簡(jiǎn)化API表層,甚至對(duì)于內(nèi)部客戶端也是如此。也就是說(shuō),可以使用網(wǎng)關(guān)使微服務(wù)體系結(jié)構(gòu)本身中的拓?fù)涓菀坠芾怼?/p>
監(jiān)控方式
API網(wǎng)關(guān)在體系結(jié)構(gòu)中的作用也使其非常適合進(jìn)行某些類型的監(jiān)視,警報(bào)和跟蹤。同樣,在網(wǎng)關(guān)處收集統(tǒng)計(jì)信息對(duì)于流量和使用情況的廣泛分析也很有用。帶有日志記錄的API網(wǎng)關(guān)如下圖所示。
??
有多種方法可以處理API網(wǎng)關(guān)日志記錄的分析,比如使用Amazon Elasticsearch Service。
安全
由于網(wǎng)關(guān)是系統(tǒng)的單點(diǎn)入口,因此在系統(tǒng)加固中首當(dāng)其沖。這類似于系統(tǒng)管理最佳實(shí)踐中跳轉(zhuǎn)主機(jī)的角色。
這樣服務(wù)就能夠主要關(guān)注與單個(gè)API網(wǎng)關(guān)的通信的安全,這比處理多個(gè)面向公共的API簡(jiǎn)單得多。
以上內(nèi)容適用于基礎(chǔ)設(shè)施級(jí)安全性。然而,網(wǎng)關(guān)也可以在業(yè)務(wù)級(jí)別上承擔(dān)身份驗(yàn)證和授權(quán)的工作。這需要對(duì)所涉及的后端服務(wù)進(jìn)行編排,但可以通過(guò)將安全邏輯集中在一個(gè)地方來(lái)簡(jiǎn)化事情。這自然與速率限制或使用付費(fèi)聯(lián)系在一起,因?yàn)榫W(wǎng)關(guān)將擁有用于計(jì)費(fèi)的客戶端帳戶。
API網(wǎng)關(guān)解決方案
API網(wǎng)關(guān)解決方案分為兩大類:托管的和自行開發(fā)的。在托管解決方案領(lǐng)域,每個(gè)云供應(yīng)商都提供一個(gè)產(chǎn)品。這些可以通過(guò)搜索找到,因?yàn)樗鼈儽?毫無(wú)想象力地)命名為“Amazon API網(wǎng)關(guān)”、“Azure應(yīng)用網(wǎng)關(guān)”和“谷歌云API網(wǎng)關(guān)”。
在開發(fā)自己的框架時(shí),最好從一個(gè)能夠幫助完成大量繁重工作的框架開始。例如,在Java生態(tài)系統(tǒng)中,Spring Cloud提供了Spring Cloud Gateway。而Nginx是另一個(gè)不錯(cuò)的選擇。
API網(wǎng)關(guān)的實(shí)際應(yīng)用
我們已經(jīng)討論了API網(wǎng)關(guān)可以提供的許多好處。但是,一定要記住這種權(quán)衡:網(wǎng)關(guān)也是需要維護(hù)的基礎(chǔ)設(shè)施的另一部分。特別是,API網(wǎng)關(guān)必須與對(duì)后端和客戶端的更改保持同步。也就是說(shuō),如果你的體系結(jié)構(gòu)復(fù)雜性或業(yè)務(wù)需要它,API網(wǎng)關(guān)可能是不錯(cuò)的解決方案。
【譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為.com】
當(dāng)前文章:不只有簡(jiǎn)單性和穩(wěn)定性,API網(wǎng)關(guān)還有這些好處
本文鏈接:http://m.fisionsoft.com.cn/article/cocjise.html


咨詢
建站咨詢
