國產微服務網關Apache APISIX 上手

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 , 可以看到相較於於 KongTraefik 從源碼角度非常簡潔。

安裝

安裝 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服務的反向代理,並且可以實現限流
  1. upstream > 添加

2 . routes > 添加

令牌桶限流配置

  • rate # 流速 每秒
  • burst # 令牌桶的容積
  • key #根據哪個header 來限流
  • rejected_code # 返回錯誤碼
  • 訪問: ip:9080/ 體驗限流效果

在線演示版本

官方部署了一個在線的 dashboard ,方便大家瞭解 APISIX。
http://apisix.iresty.com

項目推薦: Spring Cloud 、Spring Security OAuth2的RBAC權限管理系統 歡迎關注

最近裸辭,好好歇歇。整點花哨的系列,歡迎關注。

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