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