Промежуточное ПО для кэширования ответов и балансировка нагрузки на AWS - PullRequest
0 голосов
/ 17 апреля 2020

Мы используем ResponseCaching Middleware в ASP. NET Core v3.1 для конечных точек API. Мы работаем в среде с балансировкой нагрузки на AWS.

Вот пример использования атрибута ResponseCache:

[ResponseCache(Duration = 86400, VaryByQueryKeys = new[] { "productId" })]
public async Task<IActionResult> Get(string productId) {
   // ...
}

Кажется, это работает нормально.

Когда клиент хочет разрушить кеш, он просто отправляет HTTP-заголовок:

cache-control: no-cache;

Вот что я хочу проверить: у нас есть среда с балансировкой нагрузки на AWS , Если клиент сбрасывает кэш, как показано выше, это повлияет только на один экземпляр / узел на AWS, верно? Например, клиент-1 может отправить cache-control: no-cache для сброса кэша, но спустя мгновение клиент-2 все еще может потенциально увидеть старые значения, если запрос клиента-2 направляется на сервер, отличный от сервера клиента-1. Это правильно?

Каково общее решение для кэширования в среде с балансировкой нагрузки, подобной этой? Должны ли мы использовать что-то вроде Redis или есть что-то на AWS?

...