【发布时间】:2011-05-04 10:01:57
【问题描述】:
是否可以在我自己的服务器上运行 Google App Engine 开发服务器?开发服务器数据存储在处理高负载方面的能力如何?多大的数据量会削弱它?
【问题讨论】:
是否可以在我自己的服务器上运行 Google App Engine 开发服务器?开发服务器数据存储在处理高负载方面的能力如何?多大的数据量会削弱它?
【问题讨论】:
在没有 App Engine 的情况下运行 App Engine 应用的一些选项:
我也没试过。有关两者的更多讨论,请参阅 this question。
如果您只是在公共 IP 上启动 dev_appserver.py,数据存储的性能如何?如果你有很多数据,那就不好了。使用开发服务器时,整个数据存储都保存在内存中,因此当您插入数据时,Python 的内存使用量会攀升。一旦您添加了足够的数据以使您的系统开始交换,您的应用程序将变得异常缓慢。开发服务器中有一个选项可以使用 SQLite 数据存储存根而不是内存存根。这使得大量数据的性能可以接受,但它的效率不如生产数据存储,因此即使数据量很小,数据存储访问也相对较慢。肯定比数据量少的内存数据存储要慢得多。
将开发服务器作为独立的生产服务器运行通常是个坏主意。与开发服务器一起提供的 API 存根是为开发人员而非用户设计的。例如。发送邮件只是写一个日志条目而不是实际发送邮件;以管理员身份登录需要点击“以管理员身份登录”复选框。
如果您想将现有应用移出 App Engine,请使用上述选项之一。如果您是从头开始开发应用程序,请使用 Django 或其他设计用于在通用硬件上运行的框架。开发服务器仅用于:开发。
【讨论】:
是的,有很多缺失的功能(并行队列、cron 作业、邮件、XMPP 等),一些隐藏的安全问题,性能和稳定性差,在技术上是可行的。 p>
您可能已经猜到了,这是个坏主意。
以HTTP服务器为例;使用开发服务器,您将在生产环境中放入一个未记录的 BaseHTTPServer,这完全不可能配置,并且可能存在一些可被利用的隐藏安全漏洞。
正如@Drew 所说,有更好的选择可以在非 GAE 的生产就绪环境中运行您的 Google App Engine 代码。
【讨论】:
虽然这是 2 年以上的旧帖子,但只需添加我的信息:http://www.jboss.org/capedwarf
【讨论】: