一、 概述9 q& q" ?; e8 X) q
7 j$ }4 V( m- X/ R* [0 fGitee上的官方文档链接。! O8 T. C: J' K( J* @8 \
APISIX 是基于 OpenResty + etcd 实现的云原生、高性能、可扩展的微服务 API 网关。它是国人开源,目前已经进入 Apache 进行孵化。* ?% F+ S" m* O' i' m
2 x8 L3 c) N; @6 y. ^5 F# h% P! s1 L. s2 [7 d. L% \
OpenResty:通过 Lua 扩展 Nginx 实现的可伸缩的 Web 平台。
- E7 E3 H. i6 }0 q
etcd:Key/Value 存储系统。
' E/ V1 B5 U' k! \APISIX 通过插件机制,提供了动态负载平衡、身份验证、限流限速等等功能,当然我们也可以自己开发插件进行拓展。
0 A5 l0 X/ |! g$ f. D# i% w
3 W [' N( U! ~/ M+ w% [# X; |% F* x# }' J9 @* ?7 W( J0 ]. d5 d
动态负载均衡:跨多个上游服务的动态负载均衡,目前已支持 round-robin 轮询和一致性哈希算法。1 W. l2 k9 h. |: E6 V* Y
身份验证:支持 key-auth、JWT、basic-auth、wolf-rbac 等多种认证方式。
, f/ L, F4 K6 o" W, [
限流限速:可以基于速率、请求数、并发等维度限制。& E/ E# K0 r ^7 h并且 APISIX 还支持 A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、监控报警、服务可观测性、服务治理等等高级功能,这在作为微服务 API 网关非常重要的特性。
( C' F. \% ]7 p% ]$ t下面,我们正式进入 APISIX 的极简入门之旅。
2 H7 X; _- ~: q8 M6 [" h) L二、安装$ [2 W* R4 \! p9 B! ^; D
. v1 G3 \+ x( @7 I) |+ ?7 M9 A6 \在《APISIX 官方文档 —— 安装》中,介绍了源码包、RPM 包、Luarocks、Docker 四种安装方式。这里我们使用 CentOS 7.X 系统,所以采用 RPM 包。; H8 U2 X. x E/ Q3 z3 s' B( H% T
因为 APISIX 是基于 OpenResty + etcd 来实现,所以需要安装它们两个。
* ^- ^* i4 o" J) @3 `2.1 安装依赖
}' ?* A; k d o: ^! L2 p! F; p$ A5 ~' w
CentOS 7脚本
. i- K+ D# t7 m! A2 d, R# 安装 epel, `luarocks` 需要它wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmsudo rpm -ivh epel-release-latest-7.noarch.rpm# 添加 OpenResty 源sudo yum install yum-utilssudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo# 安装