Кэширование ответных сообщений

Мы делаем много REST-вызовов и хотели бы кэшировать большую часть этих вызовов. Каковы наши текущие варианты? В настоящее время Core не поддерживает кэширование вывода, поэтому можем ли мы использовать для этого кэширование ответов или распределенное кэширование? Если для кэширования ответов можно использовать обратный прокси-сервер IIS перед Kestrel для сценариев кэширования ответов? Спасибо!

1 ответ

Решение

ASP.NET Core поддерживает кеширование ответов.

Кэширование вывода поддерживается для представлений Razor тегом Cache Helper - но это не помогает вам для вызовов REST.

Распределенное кэширование или кэширование InMemory - это хорошее средство для хранения информации, которая требует больших затрат для извлечения из уровня постоянства. Это поможет вам на уровне обслуживания, но не для кэширования выходных данных (конечно, вы можете использовать некоторое промежуточное программное обеспечение, если хотите). Cache Helper Tag также использует эти методы.

Таким образом, результат кэширования вызовов REST сводится к ответному кэшированию. Короче говоря это о том, как Cache-Control заголовок устанавливается в ответе. Если вы выбираете ResponseCacheLocation.Any как Location в ResponseCache аннотация вашего контроллера (или CacheProfile), в качестве Cache-Control используется public, и обратному прокси также разрешается кэшировать ответ. Но я не пробовал, если это так в комбинации IIS и Kestrel.

Эта статья также интересна для чтения по этой теме.

Другие вопросы по тегам