作者:黄湘龙
2023 年杭州亚运会给大家留下了美好的回忆,当时各种线上线下的活动和赛事也将如火如荼地展开,与亚运会相关的应用和服务迎来流量高峰。作为亚运会所有核心流量的入口,阿里云 API 网关的重要性不言而喻。为了确保 API 网关能够稳定、高效地处理大量的并发请求,阿里云推出了一款百万并发规格的 API 网关, 为亚运会提供强大的技术支持。
百万并发规格的 API 网关,是我们专门针对高并发场景进行优化和升级的产品。它采用了先进的技术架构和算法,能够有效地处理大量的并发请求,保证 API 网关的稳定性和可靠性。同时,它还支持 API 级别的流控、热点数据缓存、多种安全机制,包括 API 授权与鉴权、流量控制等,能够有效地保护亚运相关业务系统的平稳运行。
API 网关将所有经过 API 网关的调用日志同步到用户自己的 SLS 日志服务中去,通过 SLS 日志服务可以进行实时日志查询、下载、多维度统计分析等,并且可以配置基于日志的报警策略;API 会自动将调用日志同步给阿里云云监控产品,用户可以在云监控产品上直接配置报警规则,监控报警的指标包括:Http 应答码,API 响应时间,请求次数,流入流量,流出流量。用户可以配置将调用日志上传到阿里云链路追踪平台,分析全链路调用情况。链路追踪 Tracing Analysis 提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具,可以帮助用户提高开发诊断效率。
突破 100 万 RPS 具备弹性能力的实例集群
API 网关现在支持使用专享实例组建专享实例集群,突破最大规格专享实例的并发限制。API 网关当前可以提供的专享实例能够支持的最大能力有限,当最大规格的专享实例为 6 万 RPS 的实例,在一些大型场景下还无法满足用户的使用需要,API 网关在近期为用户提供了专享实例集群产品能力,专享实例集群能够根据用户对服务性能的需求进行缩容和扩容,突破网关可以支持的最大规格上限,在亚运会项目中为客户提供了突破了 100 万 RPS 的服务能力, 满足用户更高并发的业务场景。API 网关提供的实例集群,具有灵活伸缩的能力,可以实时扩容和缩容,理论上只要底层资源足够,API 网关的实例集群具备无限扩容的能力。
性能优秀
阿里云的 API 网关除了可以为用户提供无限扩容的专享实例外,本身性能优秀,耗时极低,在性能上和容量上彻底打消后顾之忧。
性能是所有 API 网关的一个非常核心的一个指标,所有业务请求都需要过 API 网关,API 网关的性能会是整个系统性能指标的的非常关键的一环。阿里云 API 网关商业化后在公有云对公众用户提供服务七年有余,在性能上做个多次大幅度的优化,可以给大家分享一个 2023 年统计的一个专享实例的关键性能指标:98.17% 的请求在 API 网关耗时在 1 毫秒以内,API 网关平均耗时在 1ms 以内。
流量控制
流控是 API 网关最基础的能力,无论用户的业务 API 还是 AI 的 API 都需要有流控的保护。阿里云 API 网关允许用户根据后端系统最大承受能力设置流量阈值,当客户端请求总量超过阈值时,网关把多出的请求直接驳回,保证后端服务不会遇到过载请求的情况。API 网关允许用户通过多个维度对请求进行流控,可以对 API,App(访问凭证),用户(访问方的 App 归属用户)三个维度进行秒、分钟、小时、天等时间维度进行流控,API 网关同时提供针对请求中自定义参数这个维度的限流,请求的任意一个参数都可以成为流控的锚定值,比如用户可以指定请求中的 IP 头作为流控锚定值,那么可以通过 API 网关的流控能力轻松控制每个 IP 的请求 RPS。
授权与鉴权
不同的 AI 能力提供者对用户派发了不同的访问凭证,调用不同的 AI 提供者的 API 的鉴权方式各有不同。用户可以将这些复杂度统统在阿里云的 API 网关配置上,对其调用者提供统一的鉴权方式。用户可以通过 API 网关为不同的用户生成不同的访问凭证,并且为这些访问凭证设置有效期,也可以在 API 网关控制台随时删除指定的访问凭证。
阿里云 API 网关除了为用户提供访问凭证类型的鉴权方式,还提供了标准的 JWT 的鉴权方式, 用户可以通过颁发 Token 的方式对调用者进行动态鉴权,并且可以通过管理 API 网关的插件数据集方式来 Block 已经颁发的 Token。
阿里云 API 网关还提供了灵活的第三方鉴权的能力,用户配置自己的鉴权服务为 API 的访问进行鉴权,API 网关在调用 API 后端服务之前先调用用户的鉴权服务,收到鉴权服务的鉴权成功应答后才会继续调用后端服务,否则给客户端返回鉴权失败的应答。
日志监控与报警
5.1 SLS 日志同步与监控报警
用户可以通过配置,将所有经过 API 网关的调用日志同步到用户自己的 SLS 日志服务中去,通过 SLS 日志服务您可以进行实时日志查询、下载、多维度统计分析等,您也可以将日志投递到 OSS 或者 MaxCompute 进行远期备份或深度分析。用户还可以使用这些日志作为日志审计的数据源,日志审计是法律刚性需求,是客户安全合规依赖的基础,是一些项目的必选项,可以轻松通过配置实现。用户除了可以在日志中看到调用的基本信息,包括域名、调用者身份、调用耗时,应答状态码等基本信息外,还可以配置记录整个请求和应答,便于排查问题。
5.2 集成云监控
API 会自动将调用日志同步给阿里云云监控产品,用户可以在云监控产品上直接配置报警规则,监控报警的指标包括:Http 应答码,API 响应时间,请求次数,流入流量,流出流量。如果需要对该 API 分组下的所有 API 应用相同的报警规则,进入 API 分组详情页,点击详情页右上角的开启云监控。云监控报警可设置多级报警,阈值处于不同区间时,对应 Critical 、Warning、Info 三个不同级别,不同级别通过不同渠道发送报警通知。
5.3 全链路追踪平台
用户可以配置将调用日志上传到阿里云链路追踪平台,分析全链路调用情况。链路追踪 Tracing Analysis 提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具,可以帮助用户提高开发诊断效率。
配置好之后,就可以在全链路追踪平台上看到整个调用链每个节点的耗时情况了:
对接微服务体系
API 网关除了通过用户配置的后端业务系统的地址和后端业务系统进行通信外,同时支持从用户的微服务注册中心实时动态感知后端业务系统的服务地址,并进行点对点通信。
API 网关能够集成多种微服务注册中心,从而与微服务架构深入融合,降低系统的耦合度并提高程序的可管理性。网关可作为微服务系统的请求入口,负责所有客户端的接入、请求的路由和转发、以及保证微服务应用的安全和稳定。
微服务的注册中心,可以接收微服务业务系统的注册请求,并将业务系统的服务地址保存在注册表中。API 网关集成微服务的注册中心,如下图所示,网关作为服务的订阅者,可以从微服务的注册中心获取业务系统的服务地址、端口等信息,并根据地址和端口将请求分发到后端的多个业务系统的服务节点中,从而实现动态路由和负载均衡。
API 网关目前已经能够支持三种主流的微服务注册中心:
- Nacos
- Zookeeper
- Eureka
总结
API 网关是阿里云的一款在线上平稳运行六年多的成熟云产品,为广大用户提供标准的高性能网关服务,它为用户提供 API 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 各个生命周期阶段。阿里云 API 网关为用户提供了标准化的百万级 RPS 规格的专享实例,能够服务更多规模的业务系统,特别在本次亚运会中抗住了流量高峰,稳定、高效地处理大量的并发请求。
API 网关处理在容量上可以提供超大规格的实例外,在性能上也表现优异,耗时极低,自身平均耗时在 1ms 以内。API 网关除了能够提供主流的流控、鉴权等基础能力外,还集成了微服务网关的注册中心,能够与各种微服务架构实现融合,能为更多业务场景提供服务。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。