國產開源API網關項目APISIX進入Apache孵化器

近幾年,國內的開源熱情越來越高漲,不論個人還是企業,都開始擁抱開源。從過去的使用開源,到參與開源,貢獻開源,一步步的在國際開源組織中展露頭角。之前,國慶期間,我們一起盤點了一些進入國際視野的頂級國產開源項目:

開源大閱兵:盤點那些走向世界的中國項目。其中,有很加入的開源組織就是Apache基金會。

近日,又有一個開源項目加入了這個Java開源界大名鼎鼎的Apache基金會,開始進行孵化器。

國產開源API網關項目APISIX進入Apache孵化器

項目名稱:APISIX

項目地址:https://github.com/apache/incubator-apisix/

官方網站:https://www.iresty.com/

項目簡介:APISIX 是一個雲原生、高性能、可擴展的微服務 API 網關。它是基於 OpenResty 和 etcd 來實現,和傳統 API 網關相比,APISIX 具備動態路由和插件熱加載,特別適合微服務體系下的 API 管理。

為什麼選擇 APISIX?

如果你正在構建網站、移動設備或 IoT(物聯網)的應用,那麼你可能需要使用 API 網關來處理接口流量。

APISIX 是基於雲原生的微服務 API 網關,可以處理傳統的南北向流量,也可以處理服務間的東西向流量。

APISIX 通過插件機制,提供動態負載平衡、身份驗證、限流限速等功能,並且支持你自己開發的插件。

功能

  • 雲原生: 平臺無關,沒有供應商鎖定,無論裸機還是 Kubernetes,APISIX 都可以運行。
  • 熱更新和熱插件: 無需重啟服務,就可以持續更新配置和插件。
  • 動態負載均衡:動態支持有權重的 round-robin 負載平衡。
  • 支持一致性 hash 的負載均衡:動態支持一致性 hash 的負載均衡。
  • SSL:動態加載 SSL 證書。
  • HTTP(S) 反向代理
  • 健康檢查:啟用上游節點的健康檢查,將在負載均衡期間自動過濾不健康的節點,以確保系統穩定性。
  • 熔斷器
    : 智能跟蹤不健康上游服務。
  • 身份認證: key-auth, JWT。
  • 限制速率
  • 限制請求數
  • 限制併發
  • 代理請求重寫: 支持重寫請求上游的host、uri、schema、enable_websocket、headers信息。
  • OpenTracing: 支持 Apache Skywalking 和 Zipkin
  • 監控和指標: Prometheus
  • gRPC 協議轉換:支持協議的轉換,這樣客戶端可以通過 HTTP/JSON 來訪問你的 gRPC API。
  • Serverless: 在 APISIX 的每一個階段,你都可以添加並調用自己編寫的函數。
  • 自定義插件: 允許掛載常見階段,例如rewrite,access,header filer,body filter和log,還允許掛載 balancer 階段。
  • 控制檯: 內置控制檯來操作 APISIX 集群。
  • 版本控制:支持操作的多次回滾。
  • CLI: 使用命令行來啟動、關閉和重啟 APISIX。
  • REST API
  • Websocket 代理
  • IPv6:支持使用 IPv6 格式匹配路由。
  • 集群:APISIX 節點是無狀態的,創建配置中心集群請參考 etcd Clustering Guide。
  • 可擴展:簡單易用的插件機制方便擴展。
  • 高性能
    :在單核上 QPS 可以達到 24k,同時延遲只有 0.6 毫秒。
  • 防禦 ReDoS(正則表達式拒絕服務)
  • IP 黑名單
  • IdP 支持: 支持外部的身份認證服務,比如 Auth0,okta 等,用戶可以藉此來對接 Oauth2.0 等認證方式。
  • 單機模式: 支持從本地配置文件中加載路由規則,在 kubernetes(k8s) 等環境下更友好。
  • 全局規則:允許對所有請求執行插件,比如黑白名單、限流限速等。
  • TCP/UDP 代理: 動態 TCP/UDP 代理。
  • 動態 MQTT 代理: 支持用 client_id 對 MQTT 進行負載均衡,同時支持 MQTT 3.1.* 和 5.0 兩個協議標準。

更多關於APISIX的功能與使用介紹,可通過下方文檔鏈接查看詳細:

https://github.com/apache/incubator-apisix/blob/master/doc/README_CN.md


分享到:


相關文章: