在微服務架構中,API網關是一個必不可少的組件之一,下面推薦幾款基於Java語言開發的高性能API網關。spring
ZUUL
Zuul是Netflix開源的微服務網關,Spring Cloud對Zuul進行了整合與加強,Zuul默認使用的HTTP客戶端是Apache HTTPClient,也可使用RestClient或okhttp3.OkHttpClient。Zuul的主要功能是路由轉發和過濾器,Zuul底層利用各類filter實現以下功能:後端
產品特性安全
- 認證和安全 識別每一個須要認證的資源,拒毫不符合要求的請求
- 性能監測 在服務邊界追蹤並統計數據,提供精確的生產視圖
- 動態路由 根據須要將請求動態路由到後端集羣
- 壓力測試 逐漸增長對集羣的流量以瞭解其性能
- 負載卸載 預先爲每種類型的請求分配容量,當請求超過容量時自動丟棄
- 靜態資源處理 直接在邊界返回某些響應
Fizz Gateway
Fizz Gateway 是一個基於Spring WebFlux開發的微服務網關,可以實現熱服務編排、自動受權選擇、線上服務腳本編碼、在線測試、高性能路由、API審覈管理等目的,擁有強大的自定義插件系統能夠自行擴展,而且提供友好的圖形化配置界面,可以快速幫助企業進行API服務治理、減小中間層膠水代碼以及下降編碼投入、提升 API 服務的穩定性和安全性。服務器
產品特性markdown
- 集羣管理:Fizz網關節點是無狀態的,配置信息自動同步,支持節點水平拓展和多集羣部署
- 服務編排:支持熱服務編排能力,支持先後端編碼,隨時隨地更新API
- 負載均衡:支持round-robin負載均衡
- 服務發現:支持從Eureka註冊中心發現後端服務器
- 配置中心:支持接入apollo配置中心
- HTTP反向代理:隱藏真實後端服務,支持 Rest API反向代理
- 訪問策略:支持不一樣策略訪問不一樣的API、配置不一樣的鑑權等
- IP黑白名單:支持配置IP黑白名單
- 自定義插件:強大的插件機制支持自由擴展
- 可擴展:簡單易用的插件機制方便擴展功能
- 高性能:性能在衆多網關之中表現優異
- 版本控制:支持操做的發佈和屢次回滾
- 管理後臺:經過管理後臺界面對網關集羣進行各項配置
Spring cloud gateway
SpringCloud Gateway 是 Spring Cloud 的一個全新項目,該項目是基於 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技術開發的網關,它旨在爲微服務架構提供一種簡單有效的統一的 API 路由管理方式。SpringCloud Gateway 做爲 Spring Cloud 生態系統中的網關,目標是替代 Zuul,在Spring Cloud 2.0以上版本中,沒有對新版本的Zuul 2.0以上的最新高性能版本進行集成,仍然仍是使用的Zuul 2.0以前的非Reactor模式的老版本。而爲了提高網關的性能,SpringCloud Gateway是基於WebFlux框架實現的,而WebFlux框架底層則使用了高性能的Reactor模式通訊框架Netty。架構
產品特性負載均衡
- 基於 Spring Framework 5,Project Reactor 和 Spring Boot 2.0
- 集成 Hystrix 斷路器
- 集成 Spring Cloud DiscoveryClient
- Predicates 和 Filters 做用於特定路由,易於編寫的 Predicates 和 Filters
- 具有一些網關的高級功能:動態路由、限流、路徑重寫
Soul
Soul是一個異步的,高性能的,跨語言的,響應式的API網關,提供了統一的HTTP訪問,無縫支持dubbo,Springcloud,而且提供了豐富的插件(限流,熔斷,代理轉發)框架
產品特性異步
- 支持各類語言(http協議),支持 dubbo,springcloud協議
- 插件化設計思想,插件熱插拔,易擴展
- 靈活的流量篩選,能知足各類流量控制
- 內置豐富的插件支持,鑑權,限流,熔斷,防火牆等等
- 流量配置動態化,性能極高,網關消耗在 1~2ms
- 支持集羣部署,支持 A/B Test, 藍綠髮布
Gravitee
Gravitee API 網關是基於 Vert.X 開發的高性能接口網關,支持 Swagger 導入接口、文檔管理、性能分析、操做審計、日誌,負載均衡等功能。微服務
產品特性
- REST API:經過 Web UI 執行的每一個操做都使用內部的 Rest API
- 一鍵部署:只需單擊一下,API 就會部署到每一個 Gravitee.io 網關,而且能夠隨時使用
- 高可擴展:能夠輕鬆地將新的 Gravitee.io 網關添加到集羣中。而且數據已同步,無需浪費時間進行配置
- 自定義策略:Gravitee.io 提供了許多開箱即用的策略(速率限制、CORS、IP過濾等)。若是還不夠,能夠本身進行開發
- 健康檢測:做爲 API 提供商,請爲你的服務添加運行情況檢查,並向你的用戶提供有關 API 可用性的反饋