微服務·API網關

   微服務·API網關            

閱文時長 |  3.52分鐘 字數統計 |  1232字符
主要內容 |  一、什麼是API網關 二、微服務中的API網關 三、幾種部署策略
『微服務·API網關』
編寫人 | SCscHero 編寫時間 | 2020/9/3 AM6:31
文章類型 |  系列 完成度 | 已完成
座右銘 每個偉大的事業,都有一個微不足道的開始。
1、什麼是API網關   完成度:100%

普遍定義

在維基百科中沒有找到API網關或者API GateWay的詞條,可是在百度百科中有這樣的總結,能夠參考理解。html

兩個相互獨立的局域網之間經過路由器進行通訊,中間的路由被稱之爲網關。
任何一個應用系統若是須要被其餘系統調用,就須要暴露API,這些 API 表明着一個一個的功能點。
若是兩個系統中間通訊,在系統之間加上一個中介者協助API的調用,這個中介者就是API網關。設計模式

——選自《百度百科》跨域


我的理解

我的理解的API網關,是在微服務框架中扮演着統一接入客戶端、消費端的API請求的入口,經過API網關作服務發現、反向代理、負載均衡。相似於設計模式中的外觀模式。還有其餘功能,好比處理身份認證、流量控制、訪問日誌、反向代理、服務發現。服務器

經常使用的API網關有哪些

(1)【Zull】JAVA開發
(2)【Kong】lua開發,部分功能收費,維護成本高。
(3)【TYK】go開發 收費
(4)【Ocelot】ASP.NetCore開發
固然,對於.Neter對於Ocelot的學習更爲適當,目前學習資料比較多,博主以後也會寫一篇Ocelot的博客。架構

2、微服務中的API網關   完成度:100%

微服務架構中API網關所處的角色

以下圖,客戶端訪問API網關層的負載均衡服務器,SLB轉發到API網關集羣中處理,API網關集羣與註冊中心通信,進行服務發現,進而進行服務訪問。負載均衡

在這裏插入圖片描述

微服務中API網關不可或缺?

增長客戶端請求的複雜度,客戶端須要請求不一樣的微服務。
跨域問題,微服務的請求地址各不相同。
身份認證,每套微服務須要一套身份認證,代碼耦合度變高。框架

API網關的優缺點

優勢
一、封裝了API調用的內部結構,能夠提供微服務架構中的非業務性功能(身份認證、鑑權等),下降微服務中代碼耦合。
二、客戶端只須要關注與網關交互,而不直接調用微服務。
三、API網關可爲每一類客戶端提供了特性的API,減小客戶端和微服務間的交互次數。
四、能夠結合微服務註冊中心組件,動態增長微服務節點,進行服務擴容。並有其餘熔斷、降級、健康檢查等功能。
五、能夠方便實行某些部署策略,如藍綠部署、金絲雀部署。
六、可實現服務集羣的負載均衡。
缺點
一、增長了維護、部署的工做。網關不可單點部署,不然掛了,將面臨整個系統也將崩潰。ide

3、幾種部署策略   完成度:100%

藍綠部署,新舊版本並行發佈,流量漸漸轉向新版本。
大爆炸部署,將舊版本中止,切換新版本。
滾動部署。舊版本緩慢更新到新版本(逐個服務器更新)。
金絲雀部署。新版本面向一部分用戶,最後將完整的流量引流過來。微服務

若是有幫助到你,請點個贊哦。若是有什麼問題,請評論,一塊兒探討一下。共同進步!若有什麼須要與做者聯繫的,直接私信SCscHero便可。學習

相關文章
相關標籤/搜索