背景:我正在运行一个 Web 服务,其中每个请求都涉及大量计算(在四核机器上最多 10 秒)。
每个请求可以分解为大约 150 个独立的(同样小的)子任务。
我所追求的:我正在寻找一种托管服务,它允许我以可扩展的方式有效地服务这些类型的请求。
我所考虑的:我研究了 Google App Engine 和 Rackspace。
在我看来,GAE 似乎适用于简单的请求,需要少量资源来处理。Rackspace 之类的问题是我无法提前知道我可能需要多少个 vCPU(即使我知道未来的峰值会有多大,我也不想坐 40 台服务器闲置其余的时间)
问题:
是否可以通过以下方式使用 GAE:
对于每个请求,将其拆分为 150 个子任务
通过对同一个 webapp 执行 150 个并发 HTTP 请求来独立处理所有子任务(但通过不同的方法)
从“子结果”中收集结果并返回对原始请求的响应。
GAE 的 Map Reduce 是否有任何帮助?
还有其他更适合这项任务的服务吗?