【发布时间】:2014-04-11 17:26:38
【问题描述】:
我有多个后端服务器不断构建和刷新 API 的公共部分以缓存它。后端服务器的构建取决于作业队列中必须完成的工作。
一次, 后端服务器 1 将构建:
/article/1.json
/article/5.json
后端服务器 2 将构建:
/article/3.json
/article/9.json
/article/6.json
我需要从前端服务器提供这些文件。缓存存储为文件,以便 nginx 直接提供服务,而无需通过 rails 堆栈。
问题是设法以可扩展的方式使前端服务器上的缓存保持最新(添加新服务器应该是无缝的)。
我考虑过:
- NFS / S3(但太慢)
- Memcached(但不能直接从 nginx 提供服务 - 可能是错的?)
- CouchDB 直接提供 JSON 服务(我觉得这对这项工作来说太大了)
- 后端在redis中写json,前端工作在好地方重写文件(目前我最喜欢的选项)
对于实现这一目标的更好方法有什么经验或好主意吗?
【问题讨论】:
-
Memcache 可以直接从 Nginx 提供,你甚至可以存储 gzipped 响应并节省内存消耗nginx.org/en/docs/http/ngx_http_memcached_module.html
标签: ruby-on-rails caching amazon-web-services nginx