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

new*_*bie 9 google-app-engine

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

Dre*_*ars 7

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

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

我也没试过.有关两者的进一步讨论,请参阅此问题.

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

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

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

  • 那是一种分裂的头发.我认为他的意思是开发服务器一次只能处理一个请求. (2认同)

sys*_*out 5

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

你可能已经猜到了,这是一个坏主意.

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

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