缓存第三方API调用的最佳做法是什么?

时间:2011-11-09 18:51:05

标签: api caching nginx squid varnish

我们的团队目前运行4-5个应用程序,所有这些应用程序都使用各种第三方服务(SimpleGeo,FB图形API,Yelp API,StrikeIron等)。应用程序之间存在大量重叠,并且我们经常多次为相同的输入参数调用相同的API。显然这并不理想:它很慢而且很昂贵(有些API不是免费的)。

跨多个应用程序缓存这些API调用的最佳做法是什么?我看到了几个选项:

  1. 编写一个自定义应用程序,为所有这些API创建外观,并更改我的所有应用程序以使用它。
  2. 以非常激进的缓存模式配置某种HTTP代理,并通过该代理执行与API的连接。
  3. 我还缺少其他选择吗?

    选项2有什么问题吗?你会推荐什么HTTP代理(Squid,Varnish,Nginx等)?

1 个答案:

答案 0 :(得分:2)

你可以使用这三种中的任何一种,但我会选择鱿鱼。为此目的创建(并且大量使用)Squid(作为缓存代理)。 Varnish被设计为反向代理(在您自己的后端之前的缓存),而nginx更像是负载均衡器和Web处理器(提供文件和动态页面)。