集羣: 如何在spring 任務中 得到集羣中的一個web 容器的端口號?

系統是兩臺機器, 跑四個 web 容器, 每臺機器兩個容器 。 nginx+memcached+quartz集羣,web容器爲 tomcat 。

web 應用中 用到spring 跑多個任務,任務只能一個容器執行,就是四個容器中只能用一個跑。 誰搶到誰跑。

本覺得一個機器一個web容器的,就用IP 處理;如今一個機器兩個,因此要得到web容器的端口號;

問題:在 web 應用中,spring 任務中 怎麼得到web容器 端口號 。由於quartz 的job execute沒有request對象?nginx

設置須要的Key,例如Tomcat服務器:

編輯文件${tomact-dir}/bin/catalina.bat, 添加如下內容便可:
set JAVA_OPTS=-D<key>="<value>"web

如:
set JAVA_OPTS=-Dreyo.localPort="8081"
 
而後在程序取出 System.getProperty("reyo.localPort")了

 

下面來看一下運行的效果圖:spring

 

感謝  zqq & webit 小魚 冷月追魂簫tomcat

相關文章
相關標籤/搜索