成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

API網關:系統的門面要如何做呢?

網絡 網絡管理
API網關分為入口網關和出口網關兩類。入口網關的功能包括隔離客戶端和微服務、提供協議轉換、安全策略、認證、限流、熔斷等;而出口網關則主要用于統一調用第三方服務,提供統一的認證、授權、審計以及訪問控制。

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

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

圖片圖片


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

圖片圖片

API 網關要如何實現

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

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

在實踐中,對API網關的設計和優化需要綜合考慮性能、擴展性和靈活性等因素,以提供高效、可靠的服務。

如何在你的系統中引入 API 網關

一方面,API網關負責對服務層接口數據進行聚合。舉例來說,商品詳情頁的接口可能需要調用多個服務接口獲取商品信息、用戶信息、店鋪信息以及用戶評論等數據,API網關可以負責將這些數據聚合并返回給前端。

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

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

獨立出一組網關專門處理服務聚合和超時控制等任務。其中,一種網關被稱為流量網關,負責處理流量控制、協議轉換等任務;另一種網關則被稱為業務網關,負責處理超時控制等業務相關任務。

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

我認為,接口數據聚合是業務操作,與其放在通用的網關層來實現,不如放在更貼近業務的服務層來實現,所以,我更傾向于第二種方案。

圖片圖片

同時,我們可以在系統和第三方支付服務、以及登錄服務之間部署出口網關服務。以前,通常會在拆分出來的支付服務中完成對于第三方支付接口所需數據的加密、簽名等操作,然后再調用第三方支付接口完成支付請求。現在,我們將對數據的加密、簽名等操作放在出口網關中。這樣一來,支付服務只需要調用出口網關的統一支付接口即可完成支付請求,大大簡化了支付服務的調用流程。

在引入了 API 網關之后,我們的系統架構就變成了下面這樣:

圖片圖片

總結:

API網關分為入口網關和出口網關兩類。入口網關的功能包括隔離客戶端和微服務、提供協議轉換、安全策略、認證、限流、熔斷等;而出口網關則主要用于統一調用第三方服務,提供統一的認證、授權、審計以及訪問控制。

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

API網關可以替代系統中原有的Web層,將Web層中的功能如協議轉換、認證、限流等遷移到API網關中,將服務聚合的邏輯下沉到服務層。

責任編輯:武曉燕 來源: 二進制跳動
相關推薦

2023-10-26 18:08:36

API網關性能

2024-03-08 08:50:01

信息流系統緩存

2015-03-24 20:07:18

APP推廣APP運營

2024-03-04 08:53:50

海量數據計數器存儲

2024-05-28 09:05:31

2019-12-13 08:52:48

高并發系統限流

2024-03-01 12:16:00

分布式系統服務

2024-11-12 16:58:35

2024-05-06 00:00:00

后臺管理系統

2011-11-09 15:49:52

API

2012-03-12 16:42:54

測試

2015-07-30 11:21:16

代碼審查

2017-10-31 10:43:57

數據中心機房消防

2025-02-28 06:55:54

2022-08-03 09:11:31

React性能優化

2022-08-29 08:08:58

SQLOracleCPU

2024-04-22 08:26:37

協同編輯FigmaOT 算法

2011-06-22 09:45:46

JavaScriptAPI

2024-01-15 07:42:37

Figma協同編輯算法

2023-01-18 23:52:07

RTA用戶粒度運營
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 人人干人人草 | aⅴ色国产 欧美 | 亚洲一区影院 | 欧美性乱| 大陆一级毛片免费视频观看 | 久久久久久影院 | 国产精品乱码一区二区三区 | 天天艹日日干 | 精品日韩一区二区 | 亚洲一区电影 | 99久久日韩精品免费热麻豆美女 | 中文字幕精品一区久久久久 | 日韩中文字幕高清 | 国内精品免费久久久久软件老师 | 国产午夜精品久久久 | 成人黄色在线观看 | 日韩在线一区二区 | 99精品热视频 | 先锋资源网站 | 欧美另类视频在线 | 亚洲一区二区视频 | 久久在线| 国产欧美一区二区三区久久 | 国产视频精品免费 | 亚洲97 | 国产精品久久久久一区二区三区 | 日韩国产专区 | 国户精品久久久久久久久久久不卡 | 成人网av| 免费黄色在线 | 久久久91 | 欧美a免费| 日韩免费网 | 久草影视在线 | 亚洲精品久久久久中文字幕二区 | 影音先锋亚洲资源 | 欧洲一区视频 | 国产欧美一区二区久久性色99 | 91麻豆精品国产91久久久久久 | 国产在线精品一区二区 | 奇米影视首页 |