Как запланировать трафик исторических данных, чтобы не влиять на трафик в реальном времени? - PullRequest
0 голосов
/ 09 июня 2019

У меня проблема с дизайном системы.В текущей архитектуре хост будет принимать один вход потока данных в реальном времени (например, запрос клиента на покупку) и выполнять некоторую работу с этими данными.Моя работа состоит в том, чтобы позволить хосту извлекать исторические данные и выполнять ту же работу с этими данными.

Существует два требования:

  1. Исторические данные должны сводить к минимуму влияние на процесс ввода в реальном времени.
  2. Не должно возникатьЦП хоста.

Другими словами, данные в реальном времени имеют более высокий приоритет.Как только он получает данные в реальном времени, он должен обрабатывать их как можно скорее.Данные в реальном времени неоднородны, иногда нет данных в реальном времени, особенно в непиковое время.

У меня есть два варианта.

  1. Планирование циклического типа для ввода в реальном времени и истории.Если ввод в реальном времени пуст, хост может получить исторические данные.Ограничения:
    • Хост будет полностью занят, если ввод в режиме реального времени пуст, а исторический объем ввода достаточно велик.
    • Необходимо определить время выполнения исторических данных и вернуться к потоку в реальном времени, чтобы мы могли обрабатывать ввод в реальном времени во времени.
  2. Сэто делается несколькими потоками (всего 10 потоков), может быть, мы можем выделить один поток для запуска исторического ввода.Это не приведет к задержке трафика в реальном времени, а также не приведет к высокой загрузке процессора.

Есть ли другие варианты решения этой проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...