getstream.io 的预期表现

Expected performance with getstream.io

getstream.io 文档说人们应该期望在大约 60 毫秒内检索提要。当我检索我的提要时,它们包含一个名为 'duration' 的字段,我将其作为计算的服务器端处理时间。这个值稳定在10-40ms左右,平均在15ms左右。

问题是,我很少在不到 150 毫秒的时间内收到提要,平均时间约为 200-250 毫秒,有时甚至高达 300-400 毫秒。这是单独获取提要的时间,没有丰富等,我已经用 tcpdump 验证网络往返很低(大约 25 毫秒),并且时间实际上花在等待服务器响应上。

我试过移动我的应用程序(欧盟西部和欧盟中部),但这似乎影响不大(同样,网络往返稳定在 25 毫秒左右)。

我的问题是 - 我真的应该期待 60 毫秒并继续调查,还是 200-400 毫秒正常?在 getstream.io 网站上解释说开发者帐户收到 "Low Priority Processing" - 这在实践中意味着什么?我预计与其他计划会有多大差异?

我正在使用 node js 低级别 API。

Stream APIs 使用 SSL 加密流量。不幸的是,SSL 引入了额外的网络 I/O。通常你只需要为增加的延迟支付一次,因为 Stream HTTP APIs 支持 HTTP persistent connection(又名保持活动)。

这是 2 个连续 API 请求的 TCP 流量的 Wireshark 屏幕截图,客户端禁用了保持活动状态:

红色的 4 行突出显示 TCP 连接每次都在关闭。另一个有趣的事情是握手需要将近 100 毫秒,并且完成了两次(第一行)。

经过一番调查后发现,用于向 Stream 的 API 发出 API 请求(请求)的库在默认情况下并未启用保持活动状态。此类更改将很快成为库的一部分,并可在 development branch.

上获得

这是启用保持活动状态的相同两个请求的屏幕截图(使用该分支中的代码):

这次不再有连接重置,第二个 HTTP 请求不进行 SSL 握手。