| 閱文時長 | | 3.52分鐘 | 字數統計 | | 1232字符 |
| 『API網關』 | |||
| 撰寫人 | | SCscHero | 撰寫時間 | | Thursday, September 3, 2020 |
| 文章型別 | | 系列 | 完成度 | | 已完成 |
| 座右銘 | 每一個偉大的事業,都有一個微不足道的開始,Hello World! | ||
一、什么是API網關 完成度:100%
廣泛定義
在維基百科中沒有找到API網關或者API GateWay的詞條,但是在百度百科中有這樣的總結,可以參考理解,
兩個相互獨立的局域網之間通過路由器進行通信,中間的路由被稱之為網關,
任何一個應用系統如果需要被其他系統呼叫,就需要暴露API,這些 API 代表著一個一個的功能點,
如果兩個系統中間通信,在系統之間加上一個中介者協助API的呼叫,這個中介者就是API網關,——選自《百度百科》
個人理解
個人理解的API網關,是在微服務框架中扮演著統一接入客戶端、消費端的API請求的入口,通過API網關做服務發現、反向代理、負載均衡,類似于設計模式中的外觀模式,還有其他功能,比如處理身份認證、流量控制、訪問日志、反向代理、服務發現,
常用的API網關有哪些
(1)【Zull】JAVA開發
(2)【Kong】lua開發,部分功能收費,維護成本高,
(3)【TYK】go開發 收費
(4)【Ocelot】ASP.NetCore開發
當然,對于.Neter對于Ocelot的學習更為適當,目前學習資料比較多,博主之后也會寫一篇Ocelot的博客,
二、微服務中的API網關 完成度:100%
微服務架構中API網關所處的角色
如下圖,客戶端訪問API網關層的負載均衡服務器,SLB轉發到API網關集群中處理,API網關集群與注冊中心通訊,進行服務發現,進而進行服務訪問,

微服務中API網關不可或缺?
增加客戶端請求的復雜度,客戶端需要請求不同的微服務,
跨域問題,微服務的請求地址各不相同,
身份認證,每套微服務需要一套身份認證,代碼耦合度變高,
API網關的優缺點
優點
1、封裝了API呼叫的內部結構,可以提供微服務架構中的非業務性功能(身份認證、鑒權等),降低微服務中代碼耦合,
2、客戶端只需要關注與網關互動,而不直接呼叫微服務,
3、API網關可為每一類客戶端提供了特性的API,減少客戶端和微服務間的互動次數,
4、可以結合微服務注冊中心組件,動態增加微服務節點,進行服務擴容,并有其他熔斷、降級、健康檢查等功能,
5、可以方便實行某些部署策略,如藍綠部署、金絲雀部署,
6、可實作服務集群的負載均衡,
缺點
1、增加了維護、部署的作業,網關不可單點部署,否則掛了,將面臨整個系統也將崩潰,
三、幾種部署策略 完成度:100%
藍綠部署,新舊版本并行發布,流量漸漸轉向新版本,
大爆炸部署,將舊版本停止,切換新版本,
滾動部署,舊版本緩慢更新到新版本(逐個服務器更新),
金絲雀部署,新版本面向一部分用戶,最后將完整的流量引流過來,
如果有幫助到你,請點個贊哦,如果有什么問題,請評論,一起探討一下,共同進步!如有什么需要與作者聯系的,直接私信SCscHero即可,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/1040.html
標籤:架構設計
