2015-11-04 51 views
0

我有一個Java Web應用程序,它將一些東西保存到數據庫中,我想知道哪個實例處理了這個命令。在回答我的問題時,快速谷歌和SO搜索沒有收穫豐碩成果:CloudFoundry實例環境變量?

是否有環境變量或我的應用程序可以用來蒐集實例編號以進行持久化?

回答

1

我假設「什麼樣的實例」表示您有多個Java應用程序實例,並且您想知道多個實例中的哪一個實際向數據庫發出了請求。

使用谷歌搜索「Cloud Foundry實例環境變量」將我引向this first result。你可以看到其中一個列出的變量是CF_INSTANCE_INDEX。這些文檔是針對Pivotal託管的Cloud Foundry服務的,我猜OSS文檔的搜索引擎優化程度更差,但它們是also document this

請注意,應用程序實例是短暫的。由於許多原因(通常是因爲應用程序崩潰或基礎應用程序執行軟件/操作系統正在以滾動部署方式進行升級,因此您的實例正在透明地移動以避免停機),可能會導致實例#0被終止並重新啓動,在這種情況下,新實例#0顯然將是一個完全不同的進程,可能運行在不同的計算機上,位於不同的數據中心。

1

從日誌中,可以看到應用程序實例

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 

這裏應用/ 0是實例0 &應用/ 1爲實例1

或者,如果您要訪問的實例碼,

查找出的的環境變量,CF_INSTANCE_ *

如; CF_INSTANCE_INDEX,CF_INSTANCE_IP,CF_INSTANCE_PORT等