Мы хотим перенести наши выделенные серверы на платформу Azure для упрощения масштабирования и исследовали множество служб Azure для наших нужд. Итак, одна из служб Azure, которую мы хотим использовать, - это Azure Stream Analytics (ASA).
Мы добавили несколько платформ Azure в соответствии с нашими потребностями для выполнения некоторых тестов (пока не важно, для чего они нужны). Вот структура:
SimpleApp (отправка запроса, не в Azure) -> Концентратор событий 1 (EH1) -> ASA -> Концентратор событий 2 (EH2) -> Приложение-функция (FA)
- SimpleApp отправляет простой HTTP-запрос GET классическому выделенному серверу с именем TESTSERVER. Он занимает максимум 100–150 мс и представляет время начала. После этого он отправляет сообщение в EH1.
- Запрос ASA выглядит просто так: SELECT * INTO [Output] FROM [Input]
- Приложение-функция отправляет простой HTTP-запрос GET на TESTSERVER для определения времени окончания.
Мы были шокированы, когда увидели результаты наших журналов TESTSERVER. Это занимает 4000-5000 мс!
Затем мы начали исследовать проблему. Проверенные значения, такие как EventEnqueuedUtcTime и EventProcessedUtcTime, чтобы определить, какой блок вызывает эту медлительность. Но эти значения времени совершенно не важны. Например; EventEnqueuedUtcTime должно быть меньше EventProcessedUtcTime, но не! Таким образом, это показывает, что серверы времени могут быть разными даже в разных блоках Azure, и мы не можем использовать их для измерения. Я ошибся?
В любом случае, после этого мы заподозрили, что, возможно, последнее приложение-функция Azure может вызывать эту медлительность. Мы подумали, что, возможно, триггер концентратора событий в приложении-функции работает некорректно. Итак, мы разработали новую тестовую среду:
SimpleApp (отправка запроса, не в Azure) -> Концентратор событий 1 (EH1) -> Приложение-функция (FA1) -> Концентратор событий 2 (EH2) -> Приложение-функция 2 (FA2)
Второй шок ... Он занимает всего ~ 400 мс!
Затем мы провели множество тестов с другой архитектурой, которая содержит ASA, но все они слишком медленные для нас.
Испытывали ли вы какие-либо проблемы с производительностью с ASA? Не могли бы вы поделиться своим опытом и общим временем, затраченным вашими потоками?
С наилучшими пожеланиями.