Должен ли я управлять заголовками управления кэшем в каждом приложении или в шлюзе API?

Это вопрос наилучшей практики дизайна / архитектуры.

Меня попросили поставить CDN перед шлюзом API. Я очень новичок в CDN.

Предоставьте инструкции по кешированию в ответах и ​​проинструктируйте CDN о кешировании.

С моей точки зрения у меня есть два варианта.

  1. Мой шлюз API поддерживает политики внедрения заголовков. Добавьте сюда политики управления кешем по конфигурации разработчика, основываясь на том, что они знают о том, как работает их API.

  2. Попросите каждое приложение за шлюзом добавить свои заголовки управления кешем.

Я ищу мнения о том, как наилучшим образом реализовать эти требования, учитывая варианты выше.

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

Спасибо

0 ответов

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

Позвольте мне просто добавить, что для 3scale API Gateway скоро будет включать в себя некоторые возможности кэширования (https://github.com/3scale/APIcast/tree/master/gateway/src/apicast/policy/content_caching), хотя вы все еще можете хотите использовать возможности кэширования CDN, если трафик географически не маршрутизируется на несколько распределенных шлюзов.

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