java - 谷歌应用程序引擎确定代码是否在流量分配的实例上运行

标签 java google-app-engine

我正在尝试确定 Java8 Servlet 代码是否正在 Google App Engine 上的流量分配实例上运行。我似乎找不到环境变量或任何可以提供该信息的东西。我正在寻找标准(非弹性)实例的答案。

我看过here

我也尝试过此代码,但无论是否在流量分配的实例上运行,它都会返回“Production”:

SystemProperty.environment.value()

如有任何帮助,我们将不胜感激。

最佳答案

没有环境变量可以提供您正在查找的信息。环境变量用于配置目的,例如了解 SQL 实例的 IP 或更改生产和开发之间的代码路径,但它们无法告诉您正在运行的实例的当前状态。

Google App Engine 提供配置 liveness and readiness 的选项健康检查。第一个定期向给定端点发送 HTTP 请求以检查响应能力,第二个旨在了解刚刚启动的实例是否准备好接受传入请求。它们都是通过 app.yaml 配置的文件。

话虽如此,您可以通过发出 HTTP 请求来手动检查您的应用程序,并确认您收到 200 OK 代码作为响应。请注意,某些端点可能会工作,而其他端点可能会使您的应用程序崩溃,因此我建议您测试所有代码路径,以确保整个应用程序坚如磐石。

<小时/>

编辑:添加了有关如何检查实例是否已分配流量的信息。

在 App Engine 的“实例”选项卡中,您可以查看每个应用程序实例所处理的请求及其 InstanceId。然后,您可以通过 Stackdriver Logging 的“日志查看器”选项卡进一步检查您的实例,因为每个连接都已被记录。您可以使用标签 protoPayload.instanceId:<YOUR-INSTANCE-ID> 指定过滤日志的特定实例。 。给定时间范围内日志的存在表明实例正在接收和处理请求,因此已分配流量。

关于java - 谷歌应用程序引擎确定代码是否在流量分配的实例上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59547009/

相关文章:

java - 创建单例实例的工厂方法

java - 如何使用 docx4j 阅读 word 文档并获取所有样式的部分内容

java - 使用 select 和 Concat 的 JPA JPQL 请求

django - 在 App Engine 上运行夹层

python - Win 7 上的 Google App Engine : Python 2. 5 和 Python 2.7(64 位)

java - 如何查找方法调用

c# - Java 增强的 for 循环 VS .NET foreach 循环

java - HTTPServlet 和 APIMethod 之间的区别 - AppEngine

java - 向 Google Cloud 任务添加参数

java - 在 Android 应用程序中如何从 google appengine 下载 blob