是否可以在我自己的服务器上运行Google App Engine开发服务器?

时间:2011-05-04 10:01:57

标签: google-app-engine

是否可以在自己的服务器上运行Google App Engine开发服务器?开发服务器数据存储区如何处理高负载以及有多少数据会削弱它?

3 个答案:

答案 0 :(得分:7)

在没有App Engine的情况下运行App Engine应用程序的一些选项:

  • TyphoonAE,它使用一堆流行的开源组件运行Python应用程序
  • appscale,从亚马逊的EC2云运行Python或Java应用程序

我也没试过。有关这两者的进一步讨论,请参阅this question

如果您只是在公共IP上启动dev_appserver.py,那么数据存储的性能如何?如果你有很多数据,那就太差了。使用开发服务器时,整个数据存储区都保存在内存中,因此当您插入数据时,Python的内存使用量将会增加。一旦您添加了足够的数据以使您的系统开始交换,您的应用将变得非常缓慢。在dev服务器中有一个选项可以使用SQLite数据存储区存根而不是内存存根。这使得大量数据可以容忍性能,但它并不像生产数据存储那样高效,因此即使数据量很小,数据存储访问也相对较慢。当然比具有少量数据的内存数据存储区慢得多。

将dev服务器作为独立的生产服务器运行通常是一个坏主意。随dev服务器提供的API存根设计用于开发人员,而不是用户。例如。发送邮件只是写一个日志条目而不是实际发送邮件;以管理员身份登录需要单击“以管理员身份登录”复选框。

如果要将现有应用移出App Engine,请使用上述选项之一。如果您正在从头开发应用程序,请使用Django或其他旨在在通用硬件上运行的框架。开发服务器仅用于:开发。

答案 1 :(得分:5)

,有很多缺少的功能(并行队列,cron作业,邮件,XMPP,...),一些隐藏的安全问题,性能和稳定性差,这在技术上是可行的。

正如您可能猜到的那样,这是一个坏主意

以HTTP服务器为例;使用开发服务器,你将生产一个未记录的BaseHTTPServer,完全不可能配置,可能有一些隐藏的安全漏洞准备好被利用。

正如@Drew所说,有更好的选择可以在非GAE的生产就绪环境中运行Google App Engine代码。

答案 2 :(得分:2)

虽然这是2y +旧线程,但只需添加我的信息:http://www.jboss.org/capedwarf