2015-06-15 3 views
1

У меня есть приложение, которое часто извлекает удаленные веб-сайты (через cURL), и мне было интересно, какие у меня варианты кеширования этих HTTP-запросов. Например:Кэш удаленного доступа к веб-сайтам

application -->curl-->www.example.com 

Вопрос заключается в том, что Curl можно назвать сотни раз в час, и каждый раз, когда нужно будет сделать сотни HTTP запросов, которые в основном то же самое. Итак, что я мог ускорить? Я экспериментировал с Traffic server, но был не очень доволен результатами. Я предполагаю, что кэширование DNS является обязательным, но что еще я могу сделать здесь? Система, на которой работает приложение, - CentOS.

+0

Вы можете использовать файловую систему или базу данных и хранить там завиток. Дайте ему TTL и обновите, когда это необходимо. Очень распространенный сценарий, попробуйте просто кешировать «кеширование»? Вы спрашиваете конкретно, что использовать для слоя persistence? – ficuscr

+0

Хорошо сохраняя ответ в базе данных, требуется изменение большого количества кода в приложении, которое не поддерживает какое-либо кеширование, поэтому я решил решить эту проблему на уровне ОС. Если бы я пошел в этом направлении (база данных), Memcached был бы хорошим местом для хранения HTTP-ответов и HTTP-заголовков? – Zed

+0

Зависит от размера ответа HTML, который вы кешируете. Хранилища Key/Value, такие как memecache, не идеальны для хранения «больших» значений. Сложность добавления ввода-вывода с memcache vs RDBMS vs filesystem довольно похожа ... Может быть больше зависит от ... потребностей мьютекса, доступной памяти, других соображений, о которых вы знаете ... Используя файловую систему, вы всегда можете добавить что-то как [лак] (https://www.varnish-cache.org/) или Traffic Server сверху. – ficuscr

ответ

0

Я не знаю, почему Traffic Server не дал удовлетворительных результатов, но в целом настройка Forward Proxy с кешированием - это способ сделать это. Разумеется, вы должны убедиться, что ответ от www.example.com можно кэшировать, либо через конфигурацию на кэширующем прокси-сервере, либо непосредственно в источнике (example.com). Вероятно, это самая большая путаница в мире кэширования прокси, ожидания того, что кешируемые или нет, не соответствуют требованиям.

Смежные вопросы