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