CloudFoundry 实例环境变量?
CloudFoundry Instance Environment Variable?
我有一个 Java 网络应用程序,可以将一些内容保存到数据库中,我想知道哪个实例处理了订单。快速 google 和 SO 搜索在回答我的问题时没有结果:
我的应用程序是否可以使用环境变量或其他东西来收集实例编号以进行持久化?
我假设 "what instance" 你的意思是你有多个 Java 应用程序的实例,并且你想通过某种方式知道多个实例中的哪一个实际向数据库发出了请求。
谷歌搜索 "Cloud Foundry Instance Environment Variable" 将我带到 this first result. You can see one of the listed variables is CF_INSTANCE_INDEX
. Those docs are for Pivotal's hosted Cloud Foundry service, I guess the OSS docs have worse SEO, but they also document this。
请注意,应用程序实例是短暂的。实例 #0 可能由于多种原因被终止并重新启动(通常是因为您的应用程序崩溃,或者底层应用程序执行 software/OS 正在以滚动部署方式升级,因此您的实例正在透明地四处移动以避免停机),在这种情况下,新实例 #0 显然是一个完全不同的进程,可能 运行 在不同的机器上,在不同的数据中心。
从日志中可以看到APP实例
2015-11-13T11:44:42.000+00:00 [App/0] OUT 11:44:42.675 [main] INFO blah blah
2015-11-13T11:45:42.000+00:00 [App/1] OUT 11:45:42.676 [main] INFO blah2
这里 App/0 是实例 0 & App/1 是实例 1。
或者如果你想在代码中访问实例,
注意环境变量,CF_INSTANCE_*
例如; CF_INSTANCE_索引,CF_INSTANCE_IP,CF_INSTANCE_端口等
我有一个 Java 网络应用程序,可以将一些内容保存到数据库中,我想知道哪个实例处理了订单。快速 google 和 SO 搜索在回答我的问题时没有结果:
我的应用程序是否可以使用环境变量或其他东西来收集实例编号以进行持久化?
我假设 "what instance" 你的意思是你有多个 Java 应用程序的实例,并且你想通过某种方式知道多个实例中的哪一个实际向数据库发出了请求。
谷歌搜索 "Cloud Foundry Instance Environment Variable" 将我带到 this first result. You can see one of the listed variables is CF_INSTANCE_INDEX
. Those docs are for Pivotal's hosted Cloud Foundry service, I guess the OSS docs have worse SEO, but they also document this。
请注意,应用程序实例是短暂的。实例 #0 可能由于多种原因被终止并重新启动(通常是因为您的应用程序崩溃,或者底层应用程序执行 software/OS 正在以滚动部署方式升级,因此您的实例正在透明地四处移动以避免停机),在这种情况下,新实例 #0 显然是一个完全不同的进程,可能 运行 在不同的机器上,在不同的数据中心。
从日志中可以看到APP实例
2015-11-13T11:44:42.000+00:00 [App/0] OUT 11:44:42.675 [main] INFO blah blah
2015-11-13T11:45:42.000+00:00 [App/1] OUT 11:45:42.676 [main] INFO blah2
这里 App/0 是实例 0 & App/1 是实例 1。
或者如果你想在代码中访问实例,
注意环境变量,CF_INSTANCE_*
例如; CF_INSTANCE_索引,CF_INSTANCE_IP,CF_INSTANCE_端口等