侧边栏壁纸
  • 累计撰写 31 篇文章
  • 累计创建 14 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

API网关能提供什么能力?

AllyTester
2024-08-31 / 0 评论 / 0 点赞 / 13 阅读 / 0 字

网关是系统的统一入口,负责接收客户端请求,进行路由转发、负载均衡、安全控制、流量管理、监控等操作,最终将请求分发到后端服务。在测试工作中,通过网关日志和监控,可以在事务失败时帮助区分是网关层还是服务端的问题。本文主要对API网关进行介绍,并围绕流量控制负载均衡场景进行测试用例的梳理。

API网关的能力

  • 路由与请求转发

    • 根据请求路径、方法将客户端请求路由到对应的后端服务。

    • 可基于正则表达式、前缀匹配或精确路径匹配的路由规则进行请求转发。

    • 作用:可实现服务解耦隐藏后端服务的物理位置和部署细节,保障一定的安全性。

  • 负载均衡

    • 将请求分发到多个后端实例,提高服务处理能力,避免单节点故障。

    • 规则:轮询、加权轮询、最少连接、IP哈希算法。

  • 安全认证与授权

    • 可以进行通用的客户端身份验证,控制客户端对API资源的访问权限。

    • IP 白名单:限制特定 IP 或 IP 段的访问权限。

  • 流量管理

    • 限流:限制单位时间内的请求量,防止后端服务过载。

    • 熔断:当后端服务不可用时,快速返回错误响应以避免级联故障。

    • 重试:对暂时失败的请求自动重试,提升系统容错性。

  • 缓存机制

    • 缓存高频访问的API响应结果,减少后端负载并提升性能

  • 监控与日志

    • 指标采集:可以采集被代理的接口数据,记录请求量、响应时间、错误率等关键指标。

    • 日志记录:存储请求详细信息(如 IP、路径、时间戳),用于审计和问题排查。

    • 可视化:通过仪表盘实时展示系统状态(如 Prometheus + Grafana 集成)。

API流量控制测试策略(100并发限制)

  • 正常流量下的请求处理

    • JMeter 模拟每秒80个线程请求订单创建接口

    • 预期:所有请求成功,返回 200 状态码

  • 超限流量出发拒绝:

    • JMeter 模拟每秒120个线程请求订单创建接口

    • 预期:超出部分,返回 429(Too Many Requests

  • 限流规则动态生效

    • 运行时修改限流规则为每秒50次,验证新规则是否立即生效

    • 预期:超出50次请求被拒绝。

API负载均衡测试策略

  • 轮询策略验证

    • 启动两个订单服务实例,发送10次请求到网关,检查请求分发均匀性。

    • 预期:请求按轮询策略分配到两个实例

  • 实例故障自动剔除

    • 停止一个订单服务实例,发送请求到网关,检查是否仅访问存活实例。

    • 预期:所有请求路由到存活实例

  • 权重分配策略验证

    • 配置实例A权重为70%,实例B为30%,发送100次请求,统计分发比例。

    • 预期:实例A处理约70次,实例B处理。

0

评论区