簡體   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