繁体   English   中英

从多个API(Websockets或http请求)收集数据时,预计会更快些吗?

[英]What is expected to be faster when collecting data from multiple apis: websockets or http requests?

我必须从不同站点的API收集交易对(USD / EUR等)上的实时计时器代码数据。 数据通常是一个小型的JSON对象,大部分为〜10个数字。 天真的策略是每5秒钟左右发出一次请求,以获取这些站点中每个站点的最新报价数据。 不过,其中一些提供了websocket选项,该选项使他们可以在发生更改时直接通知我,而且我认为这样更有效。 问题是某些网站没有提供该选项,因此,如果我对所有网站(即http请求)使用相同的方法,则整体代码将更易于组织和阅读。 我也不确定数据的重量是否足以证明这一选择的合理性。

从处理类似情况的专家那里,是否可以通过使用套接字而不是定时的http请求(如果可用)来期望获得相关的性能改进?

这取决于:

  • WebSockets只有在大多数时候保持打开状态才有意义。 如果您每次想获取新数据时都打开一个新的WebSocket连接,则与简单的HTTP请求相比,开销会更大。 它的带宽不是很多(但是也是如此),但是您需要更多的往返路程来获取数据,这会使一切变慢。
  • WebSockets会占用更多资源,因为您必须为每个打开的WebSocket连接保持一个TCP连接打开。 如果站点数量很少,那么您需要问的没关系,如果站点数量很多,那就很重要了。 虽然保持正常的HTTP连接仍然是一个优势(减少延迟),但是如果资源较少,也可以关闭它们。
  • 如果大多数时候您获得的数据是相同的,则WebSockets可能会更高效,因为只有在实际更改时才发送新数据。
  • 如果您希望尽快收到新数据的通知,则WebSockets的性能会更好。 如果您只需要5秒的精度,那就没关系了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM