Когда использовать синхронную модель против асинхронной? - PullRequest
0 голосов
/ 27 июня 2019

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

  1. Клиент запрашивает информацию у прокси.
  2. Прокси сначала проверяет Redis, возвращает данные клиенту, если он есть.
  3. Если данных нет, прокси извлекает их из AWS и возвращает их клиенту, а также кэширует их в хранилище Redis.

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

С другой стороны, я слышал, что в некоторых случаях использование async менее эффективно, чем, скажем, многопоточное приложение Spring Boot, особенно с учетом того, что в большинстве случаев даже вызов API в облако будет гарантированно <100 мс . </p>

Какая модель лучше подходит для такого рода приложений?

Дополнительный вопрос: за пределами этого конкретного проекта, когда стоит использовать Async и когда это отрицательно влияет на производительность вашего приложения?

Diagram

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