主题
APIX网关
APIX 基于 Apache APISIX 进行二次开发,主要分为两个部分:
- APIX 核心:包括 Lua 插件、多语言插件运行时(Plugin Runner)、Wasm 插件运行时等;
- 功能丰富的各种内置插件:包括可观测性、安全、流量控制等。
APIX 在其核心中,提供了路由匹配、负载均衡、服务发现、API 管理等重要功能,以及配置管理等基础性模块。除此之外,APIX 插件运行时也包含其中,提供原生 Lua 插件的运行框架和多语言插件的运行框架,以及实验性的 Wasm 插件运行时等。APIX 多语言插件运行时提供多种开发语言的支持,比如 Golang、Java、Python、JS 等。
APIX 目前也内置了各类插件,覆盖了 API 网关的各种领域,如认证鉴权、安全、可观测性、流量管理、多协议接入等。当前 APIX 内置的插件使用原生 Lua 实现,关于各个插件的介绍与使用方式,可以查看相关插件文档。
描述
API 网关是位于客户端与后端服务集之间的 API 管理工具。API 网关相当于反向代理,用于接受所有 API 的调用、整合处理这些调用所需的各种服务,并返回相应的结果。API 网关通常会处理跨 API 服务系统使用的常见任务,并统一接入进行管理。通过 API 网关的统一拦截,可以实现对 API 接口的安全、日志等共性需求,如用户身份验证、速率限制和统计信息。
为什么需要 API 网关?
与传统的 API 微服务相比,API 网关有很多好处。比如:
- 它是所有 API 请求的唯一入口。
- 可用于将请求转发到不同的后端,或根据请求头将请求转发到不同的服务。
- 可用于执行身份验证、授权和限速。
- 它可用于支持分析,例如监控、日志记录和跟踪。
- 可以保护 API 免受 SQL 注入、DDOS 攻击和 XSS 等恶意攻击媒介的攻击。
- 它可以降低 API 和微服务的复杂性。
软件架构
APIX 是一个动态、实时、高性能的云原生 API 网关。它构建于 NGINX + ngx_lua 的技术基础之上,充分利用了 LuaJIT 所提供的强大性能。