【问题标题】:GAE max. Task Queue processing rateGAE 最大值任务队列处理率
【发布时间】:2015-09-23 17:59:34
【问题描述】:

问题:

  1. 是否可以每秒处理超过 500 个任务每个任务队列
  2. 每个 GAE 应用是否可以每秒处理超过 50.000 个任务?

详情:

Task queue quota 文档说:

推送队列限制
队列执行率:每个队列每秒 500 次任务调用

组合限制(推送和拉取队列)
活动队列的最大数量(不包括默认队列)>
免费应用:10 个队列,计费应用:100 个队列

500 * 100 = 50.000

我正在将我们的 GAE 应用程序推向极限,我的目标是每秒处理超过 100.000 个请求。

有可能:
http://googlecloudplatform.blogspot.com/2013/12/013-year-in-review-topping-100000-requests-per-second.html

我不知道他们是否使用了任务队列。

感谢您提供任何提示!

【问题讨论】:

  • 这里有两件事。 #1 任务队列请求与他们文章所指的 Web 请求无关。 #2 您的应用在 Web 请求和任务队列请求之间是否存在一对一的关系?或者更具体地说,为什么任务队列配额与您想要实现的已处理 rps 的数量相关?
  • 是的,REST API 请求对我的应用程序是一对一的关系(我的应用程序处理消息,它是一个集成平台)。其他 Web 请求在没有任务队列的情况下处理。

标签: python google-app-engine task-queue


【解决方案1】:

如果使用 push 队列,这两个问题的答案都是 no,即the task queue quotas

如果使用 pull 队列并且您不超过其他配额,您可能会更高 - 拉队列没有执行率限制(这实际上取决于工作人员配置/可扩展性)

正如 Josh 所说,本文指的是 Web 请求,而不是任务队列请求。而这 100k rps 恰好是该特定应用的最高测量速率,并不意味着它不能做得更好。

对网络请求的成功响应的实际速率可能会受到the safety or billing limits/quotas 的限制,该the safety or billing limits/quotas 施加于您的应用在构建对这些请求的响应时使用的各种基础设施。 GAE 通常仍会响应额外的请求,但会出现错误响应(好吧,如果也达到了传出带宽配额,则可能不会)。

但是,如果您的应用不使用任何具有配额的基础设施(例如,如果它仅提供静态内容),则其响应速度仅受 the requests quotas 的限制,对于计费应用而言,这意味着 10 GB/分钟的传出带宽。比如说,如果你的静态内容响应有 1K,相当于 ~174k rps,如果它们只有 100 个字节,那么最大值将是 ~1.747.000 rps。以此类推。

如您所见,应用的功能、设计和实施以及您愿意花的钱对您在 GAE 上实现的性能影响很多

【讨论】:

  • 感谢您指出请求配额。但是,在我的使用场景中,它确实不是瓶颈。我正在考虑拉队列,但 AFAIK 需要实现我自己的任务使用者,这会转化为我的应用程序和开发人员资源的相当重大的架构更改。不管怎样,你能指出一些关于实现拉队列的好的网络资源吗?
猜你喜欢
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 2018-06-10
  • 1970-01-01
相关资源
最近更新 更多