Сторонние данные доставки большого количества данных
-
05-07-2019 - |
Вопрос
Кто-нибудь знает, как работают сайты, которые в реальном времени получают много данных? Я имею в виду что-то вроде фондового сайта, где они могут сообщить вам в режиме реального времени (ну, в основном, 20-минутная задержка, но все же в режиме реального времени - 20 минут, насколько я понимаю). Р>
Каждую секунду к ним приходят тысячи данных: MSFT 25.00 +.23 VOL 12000 ???? для каждой акции, которая имела изменения в течение некоторого интервала.
Итак, происходит ли постоянная подача небольших толчков? Или вы думаете, что сайт будет извлечен из того места, где есть реальные данные, и скажет «дайте мне все изменения с 12:23:45 CST до сегодняшнего дня»? запрос типа?
Я спрашиваю об этом, потому что на работе у нас может возникнуть ситуация, когда нам нужно иметь под рукой информацию нашего приложения в реальном времени, как эта, и не имеет смысла бить нашего стороннего поставщика снова и снова и снова каждую секунду. ...
Решение
Обычно между двумя сторонами определен протокол сервер / клиент. В компании, в которой я работаю, связь поддерживается постоянно.
Здесь приведена информация о потоках данных в реальном времени, которые можно использовать в качестве примера с вашим запасом
Обычно поставщики данных имеют сайты FTP с (отложенными) пакетными данными. На ум приходит NWS EMWIN
Другие советы
Такие сайты, как Twitter , направляют данные на определенные утвержденные сайты в режиме реального времени через XMPP ( ссылка в вики ). р>
В более широком смысле, push-модель станет лучшим способом достижения «реального времени». передача, особенно если вы говорите о большом количестве данных.
Однако у вас всегда есть проблема при использовании чисто принудительной модели восстановления после пропущенных данных.
В зависимости от характера ваших данных это может не быть проблемой (если рассматривать доставку видео как аналога, когда объем данных огромен, но имеется достаточная избыточность для восстановления после пропущенных данных). И если у вас есть какой-либо контроль над данными, вы можете создать некоторую избыточность. Например, при каждом событии изменения вы можете указывать абсолютные значения, а не изменения, или предыдущее значение и новое значение.
Я сделал это, пытаясь извлечь котировку акций из источника и возвращаясь к метке времени, хранящейся на диске, котировки котировок, когда основной источник выходит из строя или время ожидания истекло.