应用引擎和数据缓存(寻找数据解决方案)

时间:2009-11-12 21:39:47

标签: mysql google-app-engine rdbms

我刚刚开始使用Quercus使用php进行Google App Engine。

我不会将我的完整应用程序移动到应用程序引擎,但我正在考虑通过应用程序引擎提供一些小部件和API。 同时,我将在mysql中维护我的数据库,因为我已经在一个单独的服务器上运行了。

我针对我的数据库制作了各种不同形状的数据请求。在lat / longs中按日期获取,用户等获取等等。

我怀疑的大多数widget和api请求将继续用于相同的300-400查询。 我认为将所有数据移到app引擎并最终将数据存储在两个地方是不合理的。

我希望我可以通过php向外部mysql服务器提出查询,但显然这不起作用。尝试连接时出现以下错误

Warning: A link to the server could not be established. url=jdbc:mysql://localhost:3306/
。我认为这意味着app引擎无法连接到mysql,因为应用程序引擎设置,而不是由于我做错了什么具体。 我已检查mysql是否在端口3306上运行。

假设问题是App Engine无法连接到mysql(甚至是外部mysql数据库),我认为我的另一个选择是在json中检索数据并将其存储在app engine memcache中,或直接在数据存储区中作为完整的json对象,然后散列查询以用作检索数据的密钥。

我希望得到一些建议,如果这是在AppEngine上管理数据的正确方法(或者我认为是一种好方法),或者我应该关注另一种解决方案。

我有点惊讶的是app引擎无法向外部关系数据库发出请求,因为我认为响应是作为对象检索的,并且'关系'不存在于mysql之外。

2 个答案:

答案 0 :(得分:2)

您无法在App Engine上建立套接字连接 - 仅限HTTP请求。您最好的选择是将相关数据镜像到App Engine,或让您的旧应用程序提供公开相关数据的API,并从App Engine应用程序中调用它。

答案 1 :(得分:1)

嗯,有一件事是肯定的:忘掉AppEngine上的MySQL。

数据存储可能是最快的,因为它集成在平台中。如果您愿意,您当然可以使用HTTP接口连接到外部数据库...