是否可以在自己的服务器上运行Google App Engine开发服务器?开发服务器数据存储区如何处理高负载以及有多少数据会削弱它?
答案 0 :(得分:7)
在没有App Engine的情况下运行App Engine应用程序的一些选项:
我也没试过。有关这两者的进一步讨论,请参阅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