Стоит ли комбинировать остальные API-вызовы для уменьшения количества # запросов? - PullRequest
0 голосов
/ 21 сентября 2018

Мой сервер раньше обрабатывал более 700 пользователей, и теперь он дает сбой примерно 200 пользователям.
(пользователи подключаются к серверу практически одновременно после нажатия push-сообщения)

Iдумаю, что это изменение связано с изменением способа выполнения запросов.

Тогда веб-сервер собрал всю информацию в одном ответе в формате html.Теперь каждый раздел страницы выполняет запрос API оставшегося времени, что приводит к увеличению количества запросов, вероятно, на 10+.

Я рассматриваю возможность создания конечной точки API для агрегирования этих запросов для страниц, которые пользователи будут открывать при нажатии на push.уведомление.

Другое решение, о котором я думаю, - это кэширование часто используемых ответов api rest.

Является ли хорошей идеей объединить вызовы API для сокращения вызовов API?

1 Ответ

0 голосов
/ 21 сентября 2018

Это всегда хорошая идея, чтобы уменьшить количество вызовов API.Оптимальным решением является получение всех необходимых данных за один раз без какой-либо неиспользованной информации.Это приводит к меньшему трафику, меньшему количеству запросов (и нагрузок) к серверу, меньшему использованию ОЗУ и ЦП, а также к меньшему количеству одновременных операций с БД.

Кэширование также является отличным выбором.Можно рассмотреть как кэширование всего запроса, так и отдельных частей ответа.

Совместный ответ API означает, что будет только один ответ, что сократит время предварительного выполнения (когда приложение загружает все), но увеличит время обработки, потому что он делает все в одном потоке.Это приведет к меньшему трафику, но немного к более медленному времени отклика.

С точки зрения пользователя это будет означать, что если вы объедините все, страница будет загружаться медленнее, но когда это произойдет, она загрузится полностью.

Это вопрос определения баланса.

А вопрос о том, стоит ли это делать - зависит от вашей настройки.Вы должны измерить время запуска приложения и время выполнения и выполнить математику.

Еще одна вещь, которую вы должны учитывать, это количество времени, которое может потребоваться.Существует также решение увеличения мощности сервера, например создание кластерного кэша и использование балансировщика нагрузки для разделения нагрузки.Вам нужно сравнить необходимое время для выполнения обеих задач и работы оттуда.

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