Мы пытаемся создать заявку OpenRtb на Azure env. Мы используем экземпляры redis, которые были развернуты на виртуальной машине Linux для хранения данных в реальном времени (ключи отслеживания, количество запросов/битвингов и т. Д.). В качестве конечной точки мы используем веб-сайт на основе WebApi (стандартный план/большие экземпляры/масштабирование по производительности). В контроллере участника webapi мы используем async-методы, все запросы к DB и redis также async. Json.net to ser/der json req/resp.Участник OpenRtb на Azure, это правда?
В настоящее время у нас есть проблемы с задержкой. У нас должна быть возможность получать более 10000 реакторов в секунду, а латентность должна быть < 100 мс.
Может ли кто-нибудь поделиться опытом со мной? Является ли этот технический стек хорошим для создания приложений, таких как участники rtb. В настоящее время я пытаюсь найти лучшую стратегию для хранения контекста запроса (запрос, тело запроса, заголовки и т. Д.) Для каждого запроса. Итак, мне нужно очень быстро вставить много (> 10000) больших сообщений. Я думаю о том:
- хранения в лог-файлы и скопировать их в HDFS и разбор задач по Hadoop MapReduce (HDInsight)
- используя некоторую очередь таких, как AzureQueue или ServiceBus или, может быть RabbitMQ и отправить REQ сообщения в очередь , а некоторые службы (самодельные или такие, как LogStash) будут получать их и хранить в некоторых хранилищах.
Возможно, кто-то может показать мне, как оптимизировать латентность и производительность, потому что в настоящее время у нас есть проблемы с этим. Может быть, некоторые основные подводные камни?
Можете ли вы описать свой процесс вашей системы. Как и то, что происходит с момента получения запроса на участие в ответе. в немного более подробном порядке. – Vishnu667