基於Reactor-Netty實現的響應式API網關

Fornax API網關

介紹

Fornax是一個基於Reactor-Netty實現的響應式API網關。 參考借鑑了Spring-Cloud-Gateway和Gravitee等其它開源API網關的設計思想。有可視化的API路由配置界面,部署簡單,易於 配置和使用。適合於中小型企業在數字化轉型業務中用於不同系統中的融合。

Fornax的設計

arc

  • Gateway組件實現API路由,是一個無狀態的組件,可以根據流量壓力來按需水平擴展,在其上游可以用一個nginx來在多個Gateway組件之間實現負載均衡。

  • Manager組件是一個可視化的API管理界面,API的發佈者可以通過可視化的界面來新建併發布API,發佈後的API可以更新後重新發布,可以下線,API發生的改動 在10秒內增量同步到Gateway組件並即時生效;API的使用者可以搜索API,申請訪問API,以及查看API的文檔等;發佈者和使用者都可以查 看API的訪問日誌和調用情況統計。

  • Analysis組件是一個用kafka streams編寫的訪問日誌統計分析組件,消費由Gateway組件寫入到kafka中的訪問日誌,按時序數據類型持久化 到Mongodb並做統計分析。

功能特性

  • 清晰明瞭的可視化界面完成API的定義

  • 支持目前主流的標準API網關的功能:

    • 方法重寫
    • 路徑重寫
    • APP認證
    • IP黑白名單
    • 訪問日誌審計
    • 參數映射
    • 令牌桶限流
    • 熔斷
    • 跨域策略配置
    • 支持WebSocket
    • 請求頭改寫 (開發中)
    • 請求體改寫,協議轉換 (開發中)
    • 響應頭改寫 (開發中)
    • 響應體改寫,協議轉換 (開發中)
    • API編排 (開發中)
    • 從eureka自動同步API (開發中)
    • 後端Grpc服務轉爲http接口 (開發中)
    • 自定義插件 (開發中)
  • 面向API發佈者和使用者提供隔離和獨立的UI界面,方便發佈者管理自己的API,方便使用者查找關心的API。

  • 可視化的API調用情況展示,直觀瞭解API的訪問頻率和健康狀態。

編譯安裝

項目使用Java17開發,使用gradle做爲構建工具,UI界面使用vue3開發,只需要安裝JDK17後執行gradle構建命令即可,編譯過程會自動下 載和安裝node和npm等前端構建軟件。

./gradlew :release:tgz

等待命令執行成功後,編譯產出fornax-x.x.x.tgz位於目錄release/build中。

解壓tgz文件即可,目錄結構如下:

├── bin
├── conf
├── libs
├── LICENSE
└── static
  • bin: 目錄,存放着各個組件的啓動shell腳本
  • conf: 目錄,存放各個組件的配置文件
  • libs: 目錄,存放所有jar包
  • LICENSE: 開源協議文件
  • static: 前端構建的靜態資源文件

詳細文檔

詳細文檔請訪問http://fornax.kanng.cn/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章