0

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

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

Python 应用程序通常与提供工作流引擎服务的 Java 应用程序通信。Java 应用程序永远不会直接从 Internet 访问。这类似于面向服务的架构。

我们的 Java 应用程序配置有 1 个常驻实例。但是,我们经常看到,当 Python 应用程序向 Java 应用程序发送请求(此时它什么都不做)时,会生成一个新的 Java 实例,而不是让常驻实例为请求提供服务。通过这种方式,发现了长达 10 秒的延迟,而请求处理本身只需不到 1 秒。

Google 是否有可能将一个 appengine 应用程序对另一个应用程序的请求视为一种后端工作负载,对于这种工作负载而言,吞吐量比延迟更重要?来自互联网的请求与来自 Google 内部的请求是否有不同的策略(延迟方法、cron ......也许应用引擎间的请求也属于这一类,这可能并不总是正确的)。

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

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

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

4

1 回答 1

1

是否尝试在您的 Java 应用程序上添加<threadsafe>true</threadsafe>元素?appengine-web.xml

于 2012-08-29T08:55:03.293 回答