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


系統是兩台機器, 跑四個 web 容器, 每台機器兩個容器 。 nginx+memcached+quartz集群,web容器為 tomcat 。

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

本以為一個機器一個web容器的,就用IP 處理;現在一個機器兩個,所以要獲得web容器的端口號;

問題:在 web 應用中,spring 任務中 怎么獲得web容器 端口號 。因為quartz 的job execute沒有request對象?

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

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

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

 

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

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM