Каковы лучшие практики для кэширования вызовов API сторонних производителей? - PullRequest
2 голосов
/ 09 ноября 2011

В настоящее время наша команда работает с 4-5 приложениями, и все эти приложения используют различные сторонние сервисы (SimpleGeo, FB graph API, Yelp API, StrikeIron и т. Д.). Между приложениями много общего, и часто мы вызываем одни и те же API для одних и тех же входных параметров несколько раз. Очевидно, что это не идеально: это медленно и дорого (некоторые API не бесплатны).

Каковы лучшие методы для кэширования этих вызовов API в нескольких приложениях? Я вижу несколько вариантов:

  1. Напишите собственное приложение, которое создает фасад для всех этих API, и измените все мои приложения для его использования.
  2. Сконфигурируйте какой-нибудь HTTP-прокси в очень агрессивном режиме кэширования и выполняйте подключения к API через этот прокси.

Есть ли другие варианты, которые мне не хватает?

Что-то не так с вариантом 2? Какой HTTP прокси вы бы порекомендовали для него (Squid, Varnish, Nginx и т. Д.)?

1 Ответ

2 голосов
/ 10 ноября 2011

Вы можете использовать любой из трех, но я бы пошел с кальмаром. Squid был создан (и активно используется) для этой цели (в качестве кеширующего прокси). Varnish выполнен в виде обратного прокси-сервера (кеша перед собственным бэкэндом), а nginx больше похож на балансировщик нагрузки и веб-процессор (для обслуживания файлов и динамических страниц).

...