【上海尚學堂的話】:本文主要講述了Mashape的首席技術執行官Palladino對API網關的詳細介紹,以及API網關在微服務中所起的作用,同時介紹了Mashape的一款開源API網關Kong。 API網關提供商Mashape的首席技術執行官Marco Palladino預測,儘管它們在命名方面存 ...
【上海尚學堂的話】:本文主要講述了Mashape的首席技術執行官Palladino對API網關的詳細介紹,以及API網關在微服務中所起的作用,同時介紹了Mashape的一款開源API網關Kong。
API網關提供商Mashape的首席技術執行官Marco Palladino預測,儘管它們在命名方面存在差異,但新出現的服務網格並不完全不同於API網關,兩者之間的相似性會隨著時間的推移而不斷增長。
Palladino指出,這兩種技術實際上提供了相當類似的功能。API網關,比如Amazon Web Services的API網關或Mashape的開源API網關Kong,已經在過去的十年左右的時間主要用於映射外部流量到內部資源,而最近開發了服務網格——比如Lyft’s Envoy或Uber’s Catylist——主要是在微服務架構中代理內部資源。
“當你想到網關的時候,你通常會想到一個集中的層,一個額外的跳在網路上處理附加的功能。但這並不一定是真的,”Palladino上周在洛杉磯舉行的2017年MesosCon上發表的講話。網關還可以提供一種有效的方式來處理跨微服務之間的通信。他說:“你也可以在現有的微服務上運行Kong,擺脫額外的跳躍,減少延遲。”
在過去的10年裡,API一直是一種受歡迎的通信交互方式,Docker使其易於設置微服務架構,其中應用程式和服務是由較小的可交換組件組成。但這些組件之間需要一種方式進行發現與調用。這就是API網關的作用。
API網關“可以成為一個抽象層它位於這些微服務中每個請求的訪問路徑上,”Palladino說道。
網關鞏固了通往系統常用功能的所有路徑,比如身份驗證或者服務發現,通過插件都能被網關識別。“插件是一種有效的中間件功能你能動態應用於所有的微服務上,”他講到。
API網關可以聚合服務請求和這些特性。客戶端可以做出一個響應,網關可以將其分解為多個請求,節省了客戶端自身調用的帶寬。網關同樣還可以跟蹤這些請求。
從單體應用中改造微服務就像從雞身上製作炸雞塊,還要讓雞保持活著。—@thefosk #MesosCon — The New Stack (@thenewstack) 2017年9月14號
當一個組織開始把一個單體應用拆分為微服務時,網關可以將對客戶端的影響最小化。“網關就像裝載單體應用前的一個窗帘。客戶端只會處理網關,而你可以在窗帘後面解耦你的單體應用,不必擔心更新你的客戶端,”他說道。
他說:“當你沒掌控你的客戶端的時候這個特別有用”。
傳統上,API網關在組織網路的邊緣上被使用,處理的流量大部分來自於單體應用和外部客戶端之間的交互。然而微服務架構將大部分的流量轉移到內部網路,因為不同的微服務之間要進行交互。“你可以有外部的客戶端使用案例,但這成為了當前消費微服務的眾多客戶端之一。”
構建在Nginx這高性能的伺服器上,Mashape的Kong是使用最廣泛的開源API網關,一個月超過20W運行實例,Palladino講到。使用Kong,Nginx被擴展到中間件上,能夠動態提供被一個JSON RESTful調用。(上海尚學堂java培訓原作,請多多支持關註,陸續發佈java相關技術文章)