0

是否可以将一段时间内(例如 1 秒)内收到的所有请求组合起来并批量提供服务。

基本上,我正在寻找一种方法来处理“http servlet 请求响应”映射列表,而不是分别为每个 req-resp 对提供服务。我希望 HttpServletReqRespMapList 抽象可以共享公共状态,并且在 appengine 环境中会很有用。

请分享任何想法或已知实现,以及在谷歌 appengine 环境中实现此功能的理想方式。

4

2 回答 2

2

我认为您想使用此类映射实现一些缓存并降低成本。如果 ti 是真的,那么你应该寻找其他方法。

  1. 您可以使用 DataStore 甚至 MemCache 来缓存基于请求参数的预处理数据。
  2. 您可以尝试使用上传的静态文件作为 WAR 文件的一部分。静态文件不需要任何 CPU 时间,因此它是降低成本的最佳方式。

批处理对于 Java Web 应用程序来说并不自然。通常问题可以通过其他方式解决。

如果您需要请求之间的共同状态,那么问题就会变得更加复杂。AppEngine 架构基于按需实例的概念。因此,您无法保证哪个实例会处理您的请求。这意味着您不能共享静态数据。因此,只能使用一些持久性存储(如 DataStore/MemCache 甚至一些 FileService)来共享状态。但是在使用时要小心,因为您必须考虑每种技术的延迟。

我看到的这种架构的最后一个原因是您需要根据收到的请求实施一些工作流程。如果您需要一些工作流程,您应该查看http://code.google.com/p/appengine-pipeline/它允许对任务 API 进行执行流控制。

于 2012-10-04T21:46:25.230 回答
1

不,不是,而且 servlet 标准在任何情况下都没有为此提供任何机制。

你为什么想做这个?

于 2012-10-04T09:29:17.333 回答