偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

API網(wǎng)關(guān):系統(tǒng)的門面要如何做呢?

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
API網(wǎng)關(guān)分為入口網(wǎng)關(guān)和出口網(wǎng)關(guān)兩類。入口網(wǎng)關(guān)的功能包括隔離客戶端和微服務(wù)、提供協(xié)議轉(zhuǎn)換、安全策略、認證、限流、熔斷等;而出口網(wǎng)關(guān)則主要用于統(tǒng)一調(diào)用第三方服務(wù),提供統(tǒng)一的認證、授權(quán)、審計以及訪問控制。

API 網(wǎng)關(guān)(API Gateway)不是一個開源組件,而是一種架構(gòu)模式,它是將一些服務(wù)共有的功能整合在一起,獨立部署為單獨的一層,用來解決一些服務(wù)治理的問題。你可以把它看作系統(tǒng)的邊界,它可以對出入系統(tǒng)的流量做統(tǒng)一的管控。在我看來,API 網(wǎng)關(guān)可以分為兩類:一類叫做入口網(wǎng)關(guān),一類叫做出口網(wǎng)關(guān)。

入口網(wǎng)關(guān)通常位于負載均衡服務(wù)器和應(yīng)用服務(wù)器之間,具有多個重要作用。首先,它為客戶端提供一個統(tǒng)一的接入地址,使得客戶端無需關(guān)心各個微服務(wù)的具體部署地址和協(xié)議細節(jié),從而帶來便利。其次,API網(wǎng)關(guān)可以動態(tài)路由客戶端請求到不同的業(yè)務(wù)服務(wù)上,并且進行必要的協(xié)議轉(zhuǎn)換工作,例如將HTTP請求轉(zhuǎn)換為RPC請求等。另外,API網(wǎng)關(guān)還可實現(xiàn)服務(wù)治理策略,如熔斷、降級、流量控制和分流等。此外,客戶端的認證和授權(quán)功能也可以在API網(wǎng)關(guān)中實現(xiàn),使得不同類型的客戶端采用不同的認證方式得到統(tǒng)一處理。針對黑白名單管理和日志記錄等功能也可以在API網(wǎng)關(guān)中完成。

圖片圖片


出口網(wǎng)關(guān)相比入口網(wǎng)關(guān)可能功能和作用較少。在系統(tǒng)開發(fā)中,我們通常會依賴許多外部的第三方系統(tǒng),比如第三方賬戶登錄、支付工具等。為了簡化與這些外部系統(tǒng)的交互,我們可以在應(yīng)用服務(wù)器和第三方系統(tǒng)之間部署出口網(wǎng)關(guān)。在出口網(wǎng)關(guān)中,可以實現(xiàn)對調(diào)用外部API的統(tǒng)一認證、授權(quán)、審計以及訪問控制,從而提高系統(tǒng)的安全性和穩(wěn)定性。

圖片圖片

API 網(wǎng)關(guān)要如何實現(xiàn)

理解了API網(wǎng)關(guān)的作用后,接下來需要關(guān)注其實現(xiàn)中的幾個關(guān)鍵點以及常見的開源API網(wǎng)關(guān)。在實現(xiàn)API網(wǎng)關(guān)時,首要考慮的是性能。因為API入口網(wǎng)關(guān)承擔(dān)著來自客戶端的所有流量,所以性能直接影響用戶體驗。舉例來說,如果業(yè)務(wù)服務(wù)處理時間為10ms,而API網(wǎng)關(guān)的耗時為1ms,那么每個接口的響應(yīng)時間都會增加10%,這對性能影響巨大。API網(wǎng)關(guān)的性能優(yōu)化關(guān)鍵在于I/O模型。舉例來說,Netflix開源的API網(wǎng)關(guān)Zuul在1.0版本中采用同步阻塞I/O模型,而在2.0版本中改造成了基于Netty的非阻塞I/O模型,性能提升了約20%。

此外,API網(wǎng)關(guān)中的操作可以預(yù)先定義,如黑白名單設(shè)置、接口動態(tài)路由,也可以根據(jù)業(yè)務(wù)需要定義。因此,API網(wǎng)關(guān)的設(shè)計需要注意擴展性,即可以動態(tài)添加或移除一些邏輯,使得網(wǎng)關(guān)的執(zhí)行鏈路更加靈活。一般來說,可以將每個操作定義為一個過濾器(filter),然后使用責(zé)任鏈模式將這些過濾器串起來。責(zé)任鏈可以動態(tài)組織過濾器,解耦各個過濾器之間的關(guān)系,使得增加或減少過濾器不會影響其他過濾器的運行。

在實踐中,對API網(wǎng)關(guān)的設(shè)計和優(yōu)化需要綜合考慮性能、擴展性和靈活性等因素,以提供高效、可靠的服務(wù)。

如何在你的系統(tǒng)中引入 API 網(wǎng)關(guān)

一方面,API網(wǎng)關(guān)負責(zé)對服務(wù)層接口數(shù)據(jù)進行聚合。舉例來說,商品詳情頁的接口可能需要調(diào)用多個服務(wù)接口獲取商品信息、用戶信息、店鋪信息以及用戶評論等數(shù)據(jù),API網(wǎng)關(guān)可以負責(zé)將這些數(shù)據(jù)聚合并返回給前端。

另一方面,Web層需要將HTTP請求轉(zhuǎn)換為RPC請求,并對前端的流量進行限制,例如對某些請求添加設(shè)備ID的黑名單等。因此,在進行系統(tǒng)改造時,可以將API網(wǎng)關(guān)從Web層中獨立出來,將協(xié)議轉(zhuǎn)換、限流、黑白名單等功能遷移到API網(wǎng)關(guān)中進行處理,形成一個獨立的入口網(wǎng)關(guān)層。

針對服務(wù)接口數(shù)據(jù)聚合的操作,通常有兩種解決思路:

獨立出一組網(wǎng)關(guān)專門處理服務(wù)聚合和超時控制等任務(wù)。其中,一種網(wǎng)關(guān)被稱為流量網(wǎng)關(guān),負責(zé)處理流量控制、協(xié)議轉(zhuǎn)換等任務(wù);另一種網(wǎng)關(guān)則被稱為業(yè)務(wù)網(wǎng)關(guān),負責(zé)處理超時控制等業(yè)務(wù)相關(guān)任務(wù)。

抽取獨立的服務(wù)層,專門負責(zé)接口聚合的操作。這樣,服務(wù)層可以大致分為原子服務(wù)層和聚合服務(wù)層兩部分,原子服務(wù)層提供單一功能的原子服務(wù)接口,而聚合服務(wù)層負責(zé)調(diào)用多個原子服務(wù)接口并進行數(shù)據(jù)聚合。

我認為,接口數(shù)據(jù)聚合是業(yè)務(wù)操作,與其放在通用的網(wǎng)關(guān)層來實現(xiàn),不如放在更貼近業(yè)務(wù)的服務(wù)層來實現(xiàn),所以,我更傾向于第二種方案。

圖片圖片

同時,我們可以在系統(tǒng)和第三方支付服務(wù)、以及登錄服務(wù)之間部署出口網(wǎng)關(guān)服務(wù)。以前,通常會在拆分出來的支付服務(wù)中完成對于第三方支付接口所需數(shù)據(jù)的加密、簽名等操作,然后再調(diào)用第三方支付接口完成支付請求?,F(xiàn)在,我們將對數(shù)據(jù)的加密、簽名等操作放在出口網(wǎng)關(guān)中。這樣一來,支付服務(wù)只需要調(diào)用出口網(wǎng)關(guān)的統(tǒng)一支付接口即可完成支付請求,大大簡化了支付服務(wù)的調(diào)用流程。

在引入了 API 網(wǎng)關(guān)之后,我們的系統(tǒng)架構(gòu)就變成了下面這樣:

圖片圖片

總結(jié):

API網(wǎng)關(guān)分為入口網(wǎng)關(guān)和出口網(wǎng)關(guān)兩類。入口網(wǎng)關(guān)的功能包括隔離客戶端和微服務(wù)、提供協(xié)議轉(zhuǎn)換、安全策略、認證、限流、熔斷等;而出口網(wǎng)關(guān)則主要用于統(tǒng)一調(diào)用第三方服務(wù),提供統(tǒng)一的認證、授權(quán)、審計以及訪問控制。

在實現(xiàn)API網(wǎng)關(guān)時,性能和擴展性是重點。可以采用多路I/O復(fù)用模型和線程池并發(fā)處理來提升性能,使用責(zé)任鏈模式來提升擴展性。線程池可以針對不同的接口或服務(wù)進行隔離和保護,提升網(wǎng)關(guān)的可用性。

API網(wǎng)關(guān)可以替代系統(tǒng)中原有的Web層,將Web層中的功能如協(xié)議轉(zhuǎn)換、認證、限流等遷移到API網(wǎng)關(guān)中,將服務(wù)聚合的邏輯下沉到服務(wù)層。

責(zé)任編輯:武曉燕 來源: 二進制跳動
相關(guān)推薦

2023-10-26 18:08:36

API網(wǎng)關(guān)性能

2024-03-08 08:50:01

信息流系統(tǒng)緩存

2015-03-24 20:07:18

APP推廣APP運營

2024-03-04 08:53:50

海量數(shù)據(jù)計數(shù)器存儲

2024-05-28 09:05:31

2024-11-12 16:58:35

2024-03-01 12:16:00

分布式系統(tǒng)服務(wù)

2024-05-06 00:00:00

后臺管理系統(tǒng)

2019-12-13 08:52:48

高并發(fā)系統(tǒng)限流

2015-07-30 11:21:16

代碼審查

2012-03-12 16:42:54

測試

2011-11-09 15:49:52

API

2017-10-31 10:43:57

數(shù)據(jù)中心機房消防

2025-02-28 06:55:54

2022-08-03 09:11:31

React性能優(yōu)化

2022-08-29 08:08:58

SQLOracleCPU

2024-01-15 07:42:37

Figma協(xié)同編輯算法

2023-01-18 23:52:07

RTA用戶粒度運營

2024-04-22 08:26:37

協(xié)同編輯FigmaOT 算法

2025-05-09 08:30:00

點贊
收藏

51CTO技術(shù)棧公眾號