2019 年 10 月 17 日,支流科技 API 網關 APISIX 進入 Apache 開始孵化。筆者表示去搜索了一下這家公司 OpenResty 圈內頂級大牛《OpenResty 最佳實踐》作者 溫銘 和 王院生,這就非常有意思了
APISIX 是一個高性能、可擴展的微服務 API 網關。它是基於 Nginx 和 etcd 來實現,和傳統 API 網關相比,
APISIX 作爲微服務請求⽹關,通過插件提供負載平衡,⽇志記錄,身份驗證
等功能:
- 動態負載均衡: ⽀持不同上游服務的動態負載均衡
- 安全插件: 內置安全處理層,⽀持如OAuth2、ACL、CORS、動態 SSL 和
IP 限制等
- 流量控制插件: 速率限制,請求⼤⼩限制和響應速率限制等
- 分析和監控插件:藉助如 Prometheus,Datadog 和 Runscope 產品,完成
API 流量的可視化、檢查和監控
- ⽇志插件:記錄請求或響應⽇志,並通過 HTTP、TCP 或 UDP 等⽅式發送
到你的系統(⽐如: StatsD, Syslog)
github: https://github.com/iresty , 可以看到相較於於 Kong
、 Traefik
從源碼角度非常簡潔。
安裝
安裝 openresty
- 基於 OpenResty 實現的,記住
OpenResty
一個基於Nginx 與Lua 的高性能Web 平臺.
yum install yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
yum install -y openresty
安裝 etcd
-
etcd
一個 (key-value) 強一致性NoSQL數據庫。相較於Kong
使用的PostgreSQL
關係型數據庫,又是一大亮點
yum install -y etcd
service etcd start
yum install -y https://github.com/iresty/apisix/releases/download/v0.8/apisix-0.8-0.el7.noarch.rpm
啓動 apisix
sudo apisix start
訪問控制檯: http://127.0.0.1:9080/apisix/dashboard/ ,直接訪問即可
PS: 登錄功能沒有實現,騙人的!
功能體驗
- 目標我們實現
web服務的反向代理,並且可以實現限流
- upstream > 添加
2 . routes > 添加
令牌桶限流配置
- rate # 流速 每秒
- burst # 令牌桶的容積
- key #根據哪個header 來限流
- rejected_code # 返回錯誤碼
- 訪問: ip:9080/ 體驗限流效果
在線演示版本
官方部署了一個在線的 dashboard ,方便大家瞭解 APISIX。
http://apisix.iresty.com
項目推薦: Spring Cloud 、Spring Security OAuth2的RBAC權限管理系統 歡迎關注最近裸辭,好好歇歇。整點花哨的系列,歡迎關注。