5款基於Java開發的開源API網關

在微服務架構中,API網關是一個必不可少的組件之一,下面推薦幾款基於Java語言開發的高性能API網關。

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 服務的穩定性和安全性。

產品特性

  • 集羣管理: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 可用性的反饋
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章