國產開源API閘道器專案進入Apache孵化器:APISIX

程式猿DD_發表於2020-01-15

點選藍色“程式猿DD”關注我

回覆“資源”獲取獨家整理的學習資料!

640?

640?wx_fmt=png

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

640?wx_fmt=png

專案名稱: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-authJWT

  • 限制速率

  • 限制請求數

  • 限制併發

  • 代理請求重寫: 支援重寫請求上游的hosturischemaenable_websocketheaders資訊。

  • OpenTracing: 支援 Apache Skywalking 和 Zipkin

  • 監控和指標Prometheus

  • gRPC 協議轉換:支援協議的轉換,這樣客戶端可以通過 HTTP/JSON 來訪問你的 gRPC API。

  • Serverless: 在 APISIX 的每一個階段,你都可以新增並呼叫自己編寫的函式。

  • 自定義外掛: 允許掛載常見階段,例如rewriteaccessheader filerbody filterlog,還允許掛載 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

本文通過OpenWrite的免費Markdown轉換工具釋出

留言交流不過癮

關注我,回覆“加群加入各種主題討論群

640?wx_fmt=gif

640?wx_fmt=gif

朕已閱 640?

相關文章