我们在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驻留实例处理传入请求的任何建议,而不是生成和预热新实例,这可能对吞吐量有利,但对延迟有害?
答案 0 :(得分:1)
是否已尝试在您的Java应用中将<threadsafe>true</threadsafe>
元素添加到appengine-web.xml
?