【发布时间】:2013-12-11 05:26:52
【问题描述】:
我依赖于返回 json 结果的外部服务/API。 Urlfetch 或该服务非常慢,并且性能无论如何都非常可变。此外,如果该服务出现故障,我的网站就会出现问题。我已经看到我的页面在 1 秒或更短的时间内加载完毕,因为外部服务运行不佳,所以别无选择,只能返回 404。
我正在考虑在我的应用中缓存或存储这些结果。给定请求的这些结果不会改变(或极少改变)。所以 memcache 很快,但我可以使用一些持久性,比如数据存储。
一般问题是:
为什么不简单地将这些 json 结果存储在我的应用程序的磁盘上?
由于我无法写入磁盘,我必须在我的机器上获取/写入 json(使用脚本/cron/whatever),然后部署应用程序以更新文件。我可能不需要每天部署超过一次来更新 json 文件。
一些注意事项(和问题):
- 用最小的实例,从磁盘读取需要 1.6ms 到 5ms(似乎相当于 memcache)
- 我不记得看到任何文件读取配额。有什么我忘记了吗?
- 磁盘是持久的,memcache 不是
- Datastore 速度慢得多,成本也高得多。
- 我不知道从磁盘读取处理负载的效果如何(django 的 template.render() 不会从磁盘读取并遇到同样的问题吗?)
- 如果我有多个实例正在运行并且流量很大,并发文件读取会使其变得非常慢吗?这里有人有指标吗?
- 还有其他/更好的选择吗?
【问题讨论】: