Кэширование API отдыха, я должен использовать обратный прокси или мемкачу (D)?

StackOverflow https://stackoverflow.com/questions/3636116

Вопрос

У меня есть API отдыха, где я хотел бы кэшировать ответ JSON индекса (Get / Foo) и действия чтения (Get / Foo / 1), чтобы значительно повысить производительность. Когда есть пост или поставить на ресурс записи кэширования для индекса и результатов чтения, необходимо истекать, поэтому ни один старый контент не подается.

Это сценарий, который лучше всего сделать с обратным прокси, как SQUID / лак или выберете Memcache (D)?

Это было полезно?

Решение

Использование обратного прокси, который сидит на слое HTTP, больше прозрачный. Отказ Это означает, что можно увидеть, что происходит по проводу. Плохая вещь - это немногие из этих поддержд кэширование аутентифицированных ответов, Таким образом, их эффективность может упасть до 0, если ваши ресурсы требуют аутентификации. Обратные прокси также обычно не автоматически истекают ресурс A (/foo) Когда этот совершенно не связанный ресурс B (/foo/1) модифицирован. Это правильное поведение, которое вам придется как-то добавить в ваше решение.

Оба эти задачи могут быть решены, если вы используете MEMCACHED, так как он не имеет требований к прозрачности.

Другие советы

Я бы пошел на обратный прокси, как лак, потому что вы можете реализовать (и тестировать) ваш сервис без участия логики кэша и добавить кэширование в виде отдельного слоя. Вы можете обновить / перезапустить свой сервис, в то время как лак обслуживает старые результаты для получения запроса (отлично подходит для наличия), и легко настроить правила в лаком на немножественную (очистить) существующие результаты кэша на основе конкретных действий Get / Post.

Если вы хотите использовать распределенную память MEMCACHED - это хорошее решение. https://github.com/cpatni/middleman. это обратный прокси, который использует MEMCACHED для кэширования.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top