API 網(wǎng)關(guān)可以看做是系統(tǒng)與外界聯(lián)通的入口妈经,我們可以在網(wǎng)關(guān)處理一些非業(yè)務(wù)邏輯的邏輯,比如權(quán)限驗證宇挫,監(jiān)控苛吱,緩存,請求路由等等捞稿。
那為什么需要 API 網(wǎng)關(guān)呢又谋?它有以下幾個好點:
- RPC 協(xié)議轉(zhuǎn)成 HTTP
在內(nèi)部開發(fā)中,通常都是以 RPC 協(xié)議去做開發(fā)娱局,然后暴露給內(nèi)部服務(wù)彰亥,當(dāng)外部服務(wù)需要使用這個接口的時候,往往就需要將 RPC 協(xié)議轉(zhuǎn)換成 HTTP 協(xié)議衰齐。
- 請求路由
在某些系統(tǒng)中任斋,可能存在同個接口新老兩套系統(tǒng)都在使用,這時就需要根據(jù)請求上下文來將請求路由到對應(yīng)的接口耻涛。
- 統(tǒng)一鑒權(quán)
對于鑒權(quán)操作废酷,由于不涉及到業(yè)務(wù)邏輯,那么就可以在網(wǎng)關(guān)層進(jìn)行處理抹缕,而不用下層到業(yè)務(wù)邏輯澈蟆。
- 統(tǒng)一監(jiān)控
由于網(wǎng)關(guān)是外部服務(wù)的入口,所以可以在這里監(jiān)控想要的數(shù)據(jù)卓研,比如入?yún)⒊鰠⑴糠溌窌r間等等。
- 流量控制奏赘,熔斷降級
對于流量控制寥闪,熔斷降級等非業(yè)務(wù)邏輯,可以統(tǒng)一放到網(wǎng)關(guān)層磨淌。