【问题标题】:How do I manage HTTP communication between a Apache web server and Google App Engine?如何管理 Apache Web 服务器和 Google App Engine 之间的 HTTP 通信?
【发布时间】:2012-02-03 08:32:23
【问题描述】:

我目前正在使用 Java 和 PrimeFaces 在 Google App Engine 中开发一个网络应用程序。我必须访问远程 MySQL 服务器,即我客户网站的数据库。该网站包含我的应用程序所需的所有数据。

我在网上搜索过,发现没有直接的方法可以使用 Google 应用引擎访问任何数据库。 所以我决定在 web 服务器上创建一个 PHP 脚本,它将代表 MySQL 服务器接受 SQL 查询作为 HTTP 请求,并将返回的数据作为 HTTP 响应发送。 (当然是加密的!) 如何通过 HTTP 将大型结果集从 PHP 网络服务器发送到 Google App Engine?

我在这里面临的问题是,尽管我可以设法通过 PHP 中的 GET 获取 HTTP 请求。我如何将它们发回,只是刷新不会做,以及如何将它们专门重定向回 Google App Engine 的我的应用程序。

谢谢!

【问题讨论】:

  • 为什么“仅仅冲洗不行”?向我们提供有关您的问题的更多详细信息,以及“不会做”的具体问题。

标签: java php mysql http google-app-engine


【解决方案1】:

您可以使用 UrlFetch api 将请求从 appengine 发送到您的 MySQL 服务器。你会得到一个响应,并且可以直接在 appengine 中解析它。

您可以在您的 appengine 应用程序中设置 servlet,您的 MySQL 服务器可以通过请求触发这些 servlet。您的 MySQL 服务器可以向 yourapp.appspot.com/servletpath 发送请求(您的 php GET 函数),这将启动您的 appengine servlet。 Appengine 可以从那里返回响应。

【讨论】:

  • 哦!感谢您的回复.. 是的,我也可以在 Google App Engine 中使用 PHP 脚本执行我所做的操作。再次感谢您指出这一点和 UrlFetch Api
【解决方案2】:

如果数据集太大而无法一次性传输,则只需通过向查询添加范围限制将其拆分为多个请求。还可以使用任务队列将这项工作拆分为多个任务。 appengine 的常见做法是将所有需要太长时间/太大的任务拆分为多个任务。分而治之。

【讨论】:

  • 你能再解释一下吗!如何在 PHP 中将响应拆分为多个响应。有什么方法或功能可以做到这一点吗?我认为这是另一个要发布的问题,值得吗?
  • 如何为查询添加范围限制?你是说 SQL LIMIT 函数吗?
  • 是的,我的意思是你应该使用 LIMIT 并且不要请求太多数据。
  • 谢谢!但是,当您说“数据过多”时,您想到的是多少 KB。比如说,大约 40000 个字符
  • urlfetch 服务有 32 MB 响应大小和 10 分钟期限的限制,因此您需要在这些限制下保证其安全。
猜你喜欢
  • 2014-10-10
  • 2021-12-22
  • 1970-01-01
  • 2021-10-26
  • 2020-08-07
  • 2019-01-17
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多