[编辑- 此篇文章已更新有关rtapi
版本 0.2.0 中引入的修订报告的信息。]
根据Akamai 互联网安全状况报告,API 是现代应用和不断发展的数字架构的核心,API 调用占所有网络流量的 83%。 在当今的环境下,消费者很容易转向数字竞争对手,因此让他们对您的网站或应用有积极的体验至关重要。速度备受重视,而速度最终取决于响应迅速、健康且适应性强的 API。 如果您做对了这一点 - 您的 API 比竞争对手的更快 - 开发人员就会选择您。
根据 IDC 报告《API——数字业务成败的决定因素》 ,超过 90% 的组织希望延迟小于 50 毫秒 (ms),而近 60% 的组织希望延迟为 20ms 或更低。 (延迟定义为 API 基础设施响应 API 调用所需的时间 - 从请求到达 API 网关到响应的第一个字节返回给客户端。)
我们使用这些数据以及 API 生命周期的一些端到端分析,将实时 API定义为延迟为 30 毫秒或更短的 API。 此外,30ms 的延迟阈值必须一直维持到处理请求的第 99 个百分位(这意味着平均每 100 个请求中只有 1 个请求需要的时间超过 30ms)。 有关详细信息,请参阅我们关于API 管理解决方案性能基准测试的博客。
对于大多数企业来说,尽可能实时地处理 API 调用是一项重大挑战,尤其是在使用架构复杂的 API 网关作为其 API 端点的入口点时。 那么,您的 API 表现如何? 它们是否已经足够快,可以被认为是实时的,或者它们是否需要改进? 您的产品是否感觉有点迟缓,但您又不知道原因是什么? 也许您并不确定您的 API 延迟是怎样的?
输入rtapi
- 由 NGINX 创建的实时 API 延迟基准测试工具,可测试您的 API 网关和端点的响应能力,并生成可轻松分发并在同行之间交流的报告。 有两种报告格式可供选择:带有摘要图表的 PDF 和 ASCII 格式的详细指标表。
rtapi
使用以下两种方法之一从 GitHub 下载rtapi
二进制文件:
如果你安装了Golang ,请运行以下命令:
$获取 github.com/nginxinc/rtapi
指定您想要查询的一个或多个 API 端点(目标),采用 JSON 或 YAML 格式,如以下示例所示。 我们建议将 JSON 或 YAML 保存在名为ends.json或ends.yml的文件中。 (对于 JSON,您还可以在下一步中将数据包含在rtapi
命令行中,作为--data
标志的参数。)
每个端点唯一需要的参数是target.url
和target.method
。 如果您未指定target.body
和target.header
,它们将保持为空。 如果您未在query_parameters
对象中指定参数, rtapi
将使用以下示例中显示的(默认)值。
示例 JSON 输入
[
{
“目标”:{
“网址”:“https://www.example.com”,
“方法”: “邮政”,
"body": "{\"id\":\"0\"}",
“标题”:{
"内容类型": [
“应用/json”
]
}
},
“查询参数”:{
“线程”: 2,
“最大线程数”: 2,
“连接”: 10,
“持续时间”: "10s",
"请求速率": 500
}
}
]
示例 YAML 输入
- 目标:url:https://example.com/api/id
方法: POST
正文:'{"id":"0"}'
标题:
内容类型:
-应用/json
查询参数:
主题: 2
最大线程数: 2
连接: 12
持续时间: 10秒
请求速率: 500
运行以下命令,其中--file
命名包含 JSON/YAML 格式的 API 端点列表的文件, --output
命名由rtapi
生成的 PDF 报告。 (如步骤 2 所述,您可以在命令行上提供 JSON 输入:将--file
ends.json
替换为--data
后跟 JSON 字符串。)
$ rtapi --file 端点.json --输出报告.pdf
要在终端中显示 ASCII 格式的指标表,请包含--print
标志,而不是(或除了) --output
标志。
$ rtapi --file 端点.json --print
rtapi
生成的 PDF 报告包含如下所示的响应延迟HDR 直方图(来自使用NGINX 控制器 API 管理模块配置的 NGINX Plus API 网关)。 Y 轴显示以毫秒为单位的延迟,X 轴显示在给定延迟内处理的呼叫比例,以百分位数表示。 (在下面的例子中,我们为了节省空间压缩了 Y 轴。)
为了突出显示 API 的结果,与轴平行的虚线相交以显示 API 在第 99 个百分位数(图表上为99% )的测量延迟。 为了使您的 API 被视为实时,交叉点的延迟需要小于 30 毫秒。
您的 API 延迟是否低于 30 毫秒?
如果您和我们交谈过的许多公司一样,那么很可能情况并非如此。 对于许多 API 网关和 API 管理解决方案来说,100 毫秒的延迟很常见,甚至 500 毫秒的延迟也并不罕见。
我们可以帮助您提高 API 性能 – NGINX 和 NGINX Plus 是业界最快的 API 网关,与 NGINX Controller 一起可以帮助您在不到 30 毫秒的时间内路由、验证、保护、塑造和缓存 API 调用。 了解更多信息,与 NGINX 专家交谈,并了解 NGINX 如何帮助您实现实时 API,请访问nginx.com/real-time-api 。
“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”