华为云 APIG API 网关实践:统一入口与流量管控
华为云 APIG API 网关实践:统一入口与流量管控
前言
API 网关(APIG)是华为云提供的全托管 API 管理服务,作为应用对外暴露 API 的统一入口。本文介绍 APIG 的核心功能、API 设计和流量管控实践。
APIG 核心能力
统一入口
APIG 作为所有后端服务的统一入口,客户端只需访问 APIG 地址,由 APIG 路由到不同后端。解耦客户端与后端,后端变更对客户端透明。
协议转换
APIG 支持多种协议互转:HTTP 转 HTTP、HTTP 转函数、WebSocket 转后端。适配不同协议的后端服务。
安全管控
APIG 提供认证鉴权、流量控制、IP 黑白名单等安全能力,集中管理 API 安全策略,无需每个后端单独实现。
API 设计
API 分组
API 按业务域分组管理,每个分组是一个独立的 API 集合。例如用户服务分组、订单服务分组、支付服务分组。
请求方法
RESTful 风格使用标准 HTTP 方法:GET 查询资源、POST 创建资源、PUT 更新资源、DELETE 删除资源。每个 API 定义请求路径、方法、参数和响应。
请求参数
路径参数:URL 路径中的变量,如用户 ID。
查询参数:URL 问号后的参数,如分页参数。
Header 参数:请求头中的参数,如认证 Token。
Body 参数:请求体中的参数,如 JSON 数据。
响应定义
为每个 API 定义响应状态码和响应体结构。成功返回 200,创建成功返回 201,参数错误返回 400,未授权返回 401,禁止访问返回 403,未找到返回 404,服务器错误返回 500。
流量管控
流控策略
API 级流控:限制单个 API 的调用频率,如每秒 100 次。
用户级流控:限制单个用户的调用频率,如每秒 10 次。
应用级流控:限制单个应用的调用频率,如每秒 1000 次。
时间窗流控:在特定时间段限制访问,如工作日白天限流。
熔断降级
当后端错误率超过阈值时自动熔断,直接返回降级响应,保护后端不被压垮。后端恢复后自动解除熔断。
限流响应
被限流的请求返回 429 状态码,响应体中包含限流原因和重试建议。客户端根据限流响应实现退避重试。
认证鉴权
AppKey 认证
为每个调用方分配 AppKey 和 AppSecret,调用时携带 Key 和 Secret 签名。APIG 验证签名通过后转发请求。
自定义认证
配置自定义认证函数,APIG 调用 FunctionGraph 函数进行鉴权。适合与企业身份系统集成的场景。
无认证
公开 API 可以不配置认证,任何人都可以调用。适合公开数据查询等场景。
发布管理
环境管理
APIG 支持多环境发布:开发环境、测试环境、生产环境。API 在不同环境可以配置不同的后端地址和流控策略。
版本控制
API 修改后需要重新发布才生效。可以随时回滚到之前的版本,快速恢复。
灰度发布
配置灰度策略,将部分流量路由到新版本 API,验证无问题后全量切换。
监控分析
调用统计
APIG 记录每个 API 的调用次数、成功率和平均响应时间。按时间维度查看调用趋势,发现异常波动。
调用日志
每次 API 调用的详细日志,包括请求参数、响应状态、响应时间和错误信息。用于问题排查和审计。
告警配置
配置告警规则:调用错误率超阈值告警、响应时间超阈值告警、调用次数突增告警。
常见问题
问:APIG 和 ELB 有什么区别?
答:ELB 是四层七层负载均衡,按 IP 端口或域名转发。APIG 是 API 管理平台,提供认证、流控、协议转换等 API 治理能力,功能更丰富。
问:如何实现 API 版本兼容?
答:在 URL 路径中包含版本号,如 v1 和 v2 并行发布。新版本验证稳定后逐步引导用户迁移,最终下线旧版本。
总结
APIG 作为 API 统一入口,提供路由、认证、流控、监控等完整能力。合理设计 API 结构,配置流控和熔断保障稳定性,多环境发布管理 API 生命周期。
- 点赞
- 收藏
- 关注作者
评论(0)