1、概述
1.1 介绍
APISIX 是基于 OpenResty + etcd 实现的云原生、高性能、可扩展的微服务 API 网关。它是国人开源,目前已经进入 Apache 进行孵化。
- OpenResty:通过 Lua 扩展 Nginx 实现的可伸缩的 Web 平台。
- etcd:Key/Value 存储系统。
APISIX 通过插件机制,提供了动态负载平衡、身份验证、限流限速等等功能,当然我们也可以自己开发插件进行拓展。
- 动态负载均衡:跨多个上游服务的动态负载均衡,目前已支持 round-robin 轮询和一致性哈希算法。
- 身份验证:支持 key-auth、JWT、basic-auth、wolf-rbac 等多种认证方式。
- 限流限速:可以基于速率、请求数、并发等维度限制。
并且 APISIX 还支持 A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、监控报警、服务可观测性、服务治理等等高级功能,这在作为微服务 API 网关非常重要的特性。
1.2 核心概念
上游(Upstream) | 可以理解为虚拟主机,对给定的多个目标服务按照配置规则进行负载均衡。 |
---|---|
路由(Route) | 通过定义一些规则来匹配客户端的请求,然后对匹配的请求执行配置的插件,并把请求转发给指定的上游。 |
消费者(Consumer) | 作为API网关,有时需要知道API的消费方具体是谁,通常可以用来做身份认证。 |
服务(Service) | 可以理解为一组路由的抽象。它通常与上游是一一对应的,路由与服务之间,通常是多对一的关系。 |
插件(Plugin) | API网关对请求的增强操作,可以对请求增加限流、认证、黑名单等一系列功能。可以配置在消费者、服务和路由之上。 |
2、部署安装
待修改: