CRUD 写入特定应用程序需要超过 7600 请求/分钟的免费帐户 [关闭]
Posted
技术标签:
【中文标题】CRUD 写入特定应用程序需要超过 7600 请求/分钟的免费帐户 [关闭]【英文标题】:CRUD Write specific application needs more than 7600 req/min for FREE Account [closed] 【发布时间】:2012-05-07 03:38:37 【问题描述】:我有一个应用程序在应用程序引擎上非常频繁地执行 CRUD(写入特定)操作,有时它可能会超过 7600 req/min 的免费限制。有没有办法提高这个限制?
附:我知道付费帐户会将其提高到 30000 req/min,但它不想使用它。
有没有办法使用稀疏文件的概念和发送文件而不是使用 4KB 页面。因为对 CRUD 操作的响应只占用了某些字节,而其他所有字节都被浪费了。
问候
【问题讨论】:
你在哪里找到这个 7600req/min。限制? (抱歉,但不要指望回答“我的应用程序使用了太多资源,我该如何改进它?”之类的问题......) 没有请求限制之类的东西。没听说过 @ Greg :如果您觉得这个问题有点蹩脚,对不起。但我从“Beginning Java Google App Engine”一书中发现了这个限制。对于书中所说的“请求(对应用程序的所有请求)最大速率免费帐户 - > 7600 req / min。非常感谢。 你的书写于 2009 年。两年半的时间发生了很大变化。 所以...你想做超过 120QPS,而你不想为此付出任何代价?你不觉得这有点不合理吗? 【参考方案1】:注意:很难给出通用的节省成本的建议 - 这完全取决于您的应用在做什么。以下是一些基本提示:
节省数据存储使用 - 首先阅读 billing docs 以了解成本结构。
最重要的是:尽可能使用内存缓存,尤其是缓存复杂查询的结果。
如果可能,请使用 get()
而不是 query()
。它们便宜一半。
不要索引查询中未使用的属性。索引非常昂贵 - 每个实体创建/更新/删除都会花费它们。
重要提示:不要在查询中使用offset
- 这是对资源的巨大浪费。它实际上会读取直到 offset+limit
的所有实体(并为此向您收费),然后将 limit
实体返回给应用程序:https://developers.google.com/appengine/docs/python/datastore/queryclass#Query_fetch
Web 应用程序的一般建议 - 缓存、缓存、缓存:如果您的 HTTP GET 是幂等的(它们会根据参数而变化,但不会随时间变化),那么您可以设置缓存标头,以便 Google 缓存基础架构为请求提供服务(已为所有 GAE 应用启用)。
【讨论】:
他甚至都懒得澄清这一点,但它的应用程序是用 Java 而不是 Python 再次道歉......应用程序是在java中。 不确定 Java 是如何改变 Peter 的任何建议的。这一切仍然完全正确。还要确保您了解无 sql 数据库的数据建模,尽量避免任何类似连接的查询(是的,没有连接,但我的意思是尝试为每次提取只加载一种类型的对象)【参考方案2】:您仍然对自己的工作一无所知,但免费层的 Google App Engine 可能不适合您。
虽然我不知道任何 7600 请求/分钟的限制,但每天有 50k 的数据存储写入操作限制和 50k 的数据存储读取操作限制。假设每个 HTTP 请求只进行一次写入操作,您的应用在免费层上每天只能运行 6.6 分钟。
我不知道你在说什么稀疏文件或 4k 页面,所以我对一个不清楚的问题投反对票。
【讨论】:
以上是关于CRUD 写入特定应用程序需要超过 7600 请求/分钟的免费帐户 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
VS2017 + WDK7600搭建Windows XP驱动编译环境