阿里雲微服務引擎MSE釋出閘道器功能,開啟微服務“大門”雲化時代
一、微服務“大門”有哪些選擇?
1、效能選擇-Nginx
Nginx 應該是 Web 應用的標配元件,使用場景包括負載均衡、反向代理、代理快取等。Nginx 的核心的設計非常微小和簡潔,實現的功能也相對簡單,僅僅透過查詢配置檔案與請求進行 URL 匹配,用於啟動不同的模組去完成相應的工作。
Nginx 在啟動後,會有一個 Master 程式和多個 Worker 程式,Master 程式和 Worker 程式之間是透過程式間通訊進行互動的。Worker 工作程式的阻塞點是在像 select()、epoll_wait() 等這樣的 I/O 多路複用函式呼叫處,以等待發生資料可讀 / 寫事件。Nginx 採用了非同步非阻塞的方式來處理請求,是可以同時處理成千上萬個請求的。
2、服務親和-Zuul & Sping Cloud Gateway
Zuul 是 Netflix 開源的微服務閘道器元件,其可以配合 Eureka、Nacos 等開源產品實現不錯的服務發現能力,同時整合Ribbon、Hystrix 或 Sentinel 等元件實現對整個鏈路的流控。
Zuul 的核心是一系列的過濾器,這些過濾器許多功能,例如:
鑑權與訪問控制:識別每次請求的合法性,並拒絕那些沒有在授權列表中的來源請求。
審計與監控:記錄每次請求/響應的內容,以及 RT/錯誤率等,從而分析出 API 的動態質量、安全情況。
動態路由負載:動態地將請求路由分流到不同的服務、應用或者叢集。
統一上下文:在請求轉發前根據業務需求設定公共的上下文資訊向後傳遞。
Mock 響應:針對簡單請求可以組合配置中心,直接在閘道器層直接響應,從而避免其轉發到內部。
上面提及的這些特性是 Nginx 所沒有的,Netflix 公司研發 Zuul 是為了解決微服務場景的諸多問題,而不僅僅是做一個類似於 nginx 的反向代理。
Spring Cloud Gateway 是 Spring Cloud 的一個全新專案,該專案是基於 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技術開發的閘道器,它旨在為微服務架構提供一種簡單有效的統一的 API 路由管理方式。
Spring Cloud Gateway 作為 Spring Cloud 生態系統中的閘道器,目標是替代 Zuul,在Spring Cloud 2.0 以上版本中,沒有對新版本的 Zuul 2.0 以上最新高效能版本進行整合,仍然還是使用的 Zuul 2.0 之前的非 Reactor 模式的老版本。而為了提升閘道器的效能,SpringCloud Gateway 是基於 WebFlux 框架實現的,而 WebFlux 框架底層則使用了高效能的 Reactor 模式通訊框架 Netty。
Spring Cloud Gateway 的目標,不僅提供統一的路由方式,並且基於 Filter 鏈的方式提供了閘道器基本的功能,例如:安全,監控/指標,和限流。
3、兩者兼得-Kong
Kong 是一款基於 Nginx_Lua 模組寫的高可用服務閘道器,由於 Kong 是基於 Nginx 的,所以可以水平擴充套件多個 Kong 伺服器。透過前置的負載均衡配置把請求均勻地分發到各個 Server,來應對大批次的網路請求。
Kong 主要有三個元件:
Kong Server:基於 nginx 的伺服器,用來接收 API 請求。
Apache Cassandra/PostgreSQL:用來儲存運算元據。
Kong dashboard:官方推薦 UI 管理工具,當然,也可以使用 restfull 方式管理 admin api。
Kong 採用外掛機制進行功能定製,外掛集(可以是 0 或 N 個)在 API 請求響應迴圈的生命週期中被執行。外掛使用 Lua 編寫,基礎功能包括:HTTP 基本認證、金鑰認證、CORS(Cross-Origin Resource Sharing,跨域資源共享)、TCP、UDP、檔案日誌、API 請求限流、請求轉發以及 Nginx 監控等。
Kong 閘道器具有以下的特性:
可擴充套件性:透過簡單地新增更多的伺服器,可以輕鬆地進行橫向擴充套件,這相較於 nginx 能讓你省心不少,但可能相對於 Zuul 稍稍弱些;
模組化:可以透過新增新的外掛進行擴充套件,這些外掛可以透過 RESTful Admin API 輕鬆配置;
在任何基礎架構上執行:Kong 閘道器可以在任何地方都能執行,可以在雲或內部網路環境中部署 Kong。
二、自建 OR 雲產品
但是!有過使用經驗的同學應該會發現,真正用起來我們還需要更多的服務發現能力、更全面的監控可觀測能力、更高的穩定性保障,那麼到底是自己手工打造還是購買成本更合適呢?我們先來看下自建和雲產品的比較:
1、自建 VS 託管雲產品
對比可以看到,這些能力使用託管的 MSE 微服務閘道器就相當於省去了一個運維團隊、一箇中介軟體團隊、一個多語言開發能力的研發團隊。現在,您只要結合自己的業務場景選擇合適的引擎即可:
接入層場景選擇 Kong,效能高 SSL 安全能力匹配;
業務分支選擇 Zuul,自定義擴充套件方便還有很強的服務發現能力;
或者如果你是 Spring Cloud 技術體系,那麼趕緊把 Spring Cloud Gateway 加入你的全家桶吧。
2、雲產品的各引擎對比
三、總結
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31550522/viewspace-2764613/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微服務引擎 MSE 及雲原生 API 閘道器 2024 年 10 月產品動態微服務API
- 阿里雲微服務引擎 MSE 4 月產品動態阿里微服務
- 阿里雲微服務引擎 MSE 9 月份產品動態阿里微服務
- 阿里雲微服務引擎 MSE 10 月份產品動態阿里微服務
- 阿里雲微服務引擎 MSE 5 月產品動態阿里微服務
- 註冊配置、微服務治理、雲原生閘道器三箭齊發,阿里雲 MSE 持續升級微服務阿里
- 阿里雲微服務引擎 MSE 2022 年 3 月產品動態阿里微服務
- 微服務閘道器微服務
- 雲原生微服務的下一站,微服務引擎 MSE 重磅升級微服務
- 阿里雲MSE 2.0重磅釋出,乘風破浪加速企業微服務化程式阿里微服務
- 微服務閘道器Kong 1.0正式釋出!提供100+項功能微服務
- 微服務閘道器- Nginx微服務Nginx
- 成本直降50% | 阿里雲釋出雲原生閘道器,開啟下一代閘道器新程式阿里
- 微服務中的閘道器微服務
- 微服務(七)Gateway服務閘道器微服務Gateway
- spring cloud微服務分散式雲架構-服務閘道器過濾器SpringCloud微服務分散式架構過濾器
- 微服務使用者為什麼要用雲原生閘道器微服務
- 微服務閘道器 Spring Cloud Gateway微服務SpringCloudGateway
- SpringCloud 微服務閘道器 Gateway 元件SpringGCCloud微服務Gateway元件
- .NET Core微服務開發閘道器篇-ocelot微服務
- Solon 1.8.0 釋出,雲原生微服務開發框架微服務框架
- SpringCloud微服務系列- 分散式能力建設之微服務閘道器SpringGCCloud微服務分散式
- .NETCore微服務探尋(一) - 閘道器NetCore微服務
- SpringCloud微服務治理三(Zuul閘道器)SpringGCCloud微服務Zuul
- 微服務6:通訊之閘道器微服務
- 《springcloud 二》微服務動態閘道器,閘道器叢集SpringGCCloud微服務
- surging 微服務引擎 1.0 正式釋出微服務
- 雲容器雲引擎:容器化微服務,Istio佔C位出道微服務
- 高效能微服務閘道器.NETCore客戶端Kong.Net開源釋出微服務NetCore客戶端
- (六)spring cloud微服務分散式雲架構-服務閘道器Zuul高階篇SpringCloud微服務分散式架構Zuul
- (三)spring cloud微服務分散式雲架構-服務閘道器zuul初級篇SpringCloud微服務分散式架構Zuul
- 微服務引擎 MSE 8 月產品動態微服務
- Dubbo 3.0 - 開啟下一代雲原生微服務微服務
- 《springcloud 二》SrpingCloud Zuul 微服務閘道器搭建SpringGCCloudZuul微服務
- 微服務實踐分享(2)api閘道器微服務API
- 微服務基礎——厲害了!API閘道器微服務API
- 微服務下的閘道器如何選擇微服務
- 微服務閘道器實戰——Spring Cloud Gateway微服務SpringCloudGateway