在2个Google AppEngine应用程序之间执行请求时的行为

时间:2012-08-28 19:49:03

标签: google-app-engine

我们在Google AppEngine上运行2个应用程序,一个在Python中运行,一个在Java中运行。

Python应用程序面向互联网,并通过智能手机应用程序为浏览器用户或API调用提供服务。

Python应用程序经常与Java应用程序通信,后者提供工作流引擎服务。 永远不会直接从互联网访问Java应用程序。这类似于面向服务的体系结构。

我们的Java应用程序配置了1个驻留实例。 但是,我们经常看到,当Python应用程序向Java应用程序发送请求时(此时无法执行任何操作),将生成新的Java实例,而不是让驻留实例为请求提供服务。这样,发现了长达10秒的延迟,而请求处理本身只需不到1秒。

Google是否有可能将一个appengine应用程序的请求视为另一个应用程序,作为一种后端工作负载,其吞吐量比延迟更重要?对于来自互联网的请求与来自Google内部的请求是否有不同的政策(deferred方法,cron,......也许这些类别中的inter-appengine请求也可能并非总是正确的。)

Google建议我将Java应用程序作为Python应用程序的后端运行,实际上只有1个单独的Appengine应用程序,而不是2个。

此主题中的一些信息: https://groups.google.com/forum/?fromgroups=#!topic/google-appengine/8O7K3cFzBbY

关于如何强制使用appengine驻留实例处理传入请求的任何建议,而不是生成和预热新实例,这可能对吞吐量有利,但对延迟有害?

1 个答案:

答案 0 :(得分:1)

是否已尝试在您的Java应用中将<threadsafe>true</threadsafe>元素添加到appengine-web.xml