什么是API网关
API网关(API Gateway)是为企业和开发者提供的高性能、高可用、高安全的云原生网关服务,能快速将企业服务能力包装成标准API接口,帮助您轻松构建、管理和部署任意规模的API。借助API网关,可以简单、快速、低成本、低风险地实现内部系统集成和业务能力开放。API网关帮助您变现服务能力的同时,降低企业研发投入,让您专注于企业核心业务,提升运营效率。
- 如果您作为API提供者,您可以将成熟的业务能力(如虚拟机集群、数据、微服务集群等)作为后端服务,在API网关中开放API,并通过线下方式提供给API调用者使用,实现业务能力变现。
- 如果您作为API调用者,您可以获取并调用API提供者在API网关开放的API,减少开发时间与成本。
产品功能
- API生命周期管理
包括API的创建、发布、下线和删除的完整生命周期管理功能。通过API生命周期管理功能,您可以快速、高效地开放成熟的业务能力。
- 云原生网关
API网关将流量入口和微服务治理能力融合,用一个网关去同时支持了k8s Ingress和Gateway API的功能,不仅大幅提升了性能,还简化了架构,降低了部署和运维成本。
- 便捷调试工具
API网关提供页面调试工具,您可以使用该工具添加HTTP头部参数与body体参数,对API进行调试,简化API开发,降低API的开发维护成本。
- 版本管理
API可以发布到不同的环境,如果您需要再次发布此API到之前已发布的环境,那么此次的发布版本将立即覆盖之前的版本。API网关支持查看API发布历史(如版本、发布说明、发布时间和发布环境),并支持回滚到任一API历史版本,以便满足业务灰度发布、版本升级、回滚等需求。
- 环境变量
环境变量是指在环境上创建可管理的一种变量,该变量固定在环境上。当API发布到不同环境时,发布过程中变量标识会被相应环境的变量值替换,API本身定义不变。通过创建环境变量,实现同一个API,在不同环境中调用不同的后端服务。
- 精细流量控制
- 针对不同的业务等级、用户等级,可实施API的请求频率、用户的请求频率、应用(凭据)的请求频率和源IP的请求频率的管控,用于保障后端服务的稳定运行。
- 针对API调用path、query、header等参数精细化配置不同的流量的限制。
- 流量控制的时间单位可以是秒、分钟、小时或天。
- 针对特殊的应用(凭据)和租户设置特殊的流控限制。
- 监控告警
提供实时、可视化的API监控,包括:API请求次数、API调用延迟和API错误信息,通过监控面板更清晰地了解API的调用情况,识别可能影响业务的潜在风险。
- 安全防护
- 域名访问认证支持TLS1.1、TLS1.2防护,支持mTLS双向认证。
- 访问控制策略主要用来控制访问API的IP地址和账户,您可以通过设置IP地址或账户的黑白名单来拒绝/允许某个IP地址或账户访问API。
- 断路器策略是API网关在后端服务出现性能问题时保护系统的机制,支持通过熔断降级的方式保护后端服务。
- 身份认证策略支持通过AKSK、Token等多种方式进行服务认证,支持用户通过函数自定义API访问认证逻辑,支持对后端服务进行证书校验,支持签名密钥用于后端服务验证API网关的身份。
- VPC通道(负载通道)
在API网关中创建VPC通道来访问VPC环境中的资源,并将部署在VPC中的后端服务开放为API。VPC通道具有负载均衡功能,可对接服务器、微服务注册中心,支持后端流量的均衡、灰度策略,从而实现后端服务的负载均衡。
- 模拟响应
API网关支持设置模拟的API后端响应,支持利用Mock响应支持熔断降级、重定向等场景。
- HTTP2.0
API网关支持HTTP/2(超文本传输协议第2版)访问协议,通常称之HTTP2.0。拥有二进制格式编码、多路复用共享连接和请求头压缩的能力,改进传输性能,实现低延迟和高吞吐量。
- 由于HTTP2.0是强依赖网络稳定性的,建议用户在使用HTTP2.0时使用比较稳定的网络场景,而且客户端须支持HTTP2.0。
- 如果当前实例不支持HTTP2.0,请联系技术支持升级实例。
- 如需关闭HTTP2.0协议,在API网关控制台的“配置参数”页面中的“request_custom_config”参数下关闭HTTP/2协议即可。
- Binary Format二进制格式
HTTP1.x以文本的形式传输,而HTTP2.0将所有传输信息分割为更小的消息和帧,并对它们采用二进制格式编码。相对于字符串(文本)解析,二进制格式解析更方便且不易出错,提升传输性能。
- MultiPlexing多路复用
在二进制格式的基础上,HTTP2.0不再依赖多个连接去实现并行处理、发送请求及响应。
同域名下所有通信都在单个连接上完成;每个连接可以承载任意数量的消息;消息由一个或多个帧组成,多个帧之间可以乱序发送,最后可以根据帧首部的流标识重新组合。从而实现低延迟,提升效率。
- Header压缩
HTTP2.0使用encoder来减少需要传输的Header大小,客户端与服务端各自保存一份Header fields表,避免重复header传输,减少传输大小,实现高吞吐量。