通過Jboss啟動多例項解決伺服器資源限制問題
阿新 • • 發佈:2019-02-14
專案組現在有四個專案,後續還有專案會上馬,而且還要分測試伺服器和部署伺服器。但我們實際能動用的伺服器只有兩臺,顯然不夠用。
所以嘗試在一臺伺服器上部署多個jboss,埠衝突是必然的。
jboss不像tomcat改2,3個埠就可以了,它需要改很多埠,而且還在不同的資料夾下,稍不注意就會落下。
而且一臺機器上還會冗餘很多份jboss。
考慮是不是有更好的方式,例如一個jboss以不同的例項執行,既然我想到了這個問題,想來人家jboss開發者肯定也已經考慮到了。
果然,在jboss官網論壇看到了如下的敘述:
恍然大明白,jboss允許多個例項,每增加一個例項埠號增加100,即第一個例項埠為8080,那麼第二個例項即為8180. 具體配置如下: 1、複製 ${JBOSS_HOME}/server/default資料夾,貼上到該目錄,重新命名為default-jc,這是根據我自己的專案命名的,你想命名成什麼就命名成什麼,後面的對應上就可以。 2、更改${JBOSS_HOME}/server/default-jc/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml 把 ${jboss.service.binding.set:ports-default}改為 ${jboss.service.binding.set:ports-01} 3、如果再增加例項,那麼再複製default,同時修改bindings-jboss-beans.xml 相應位置為:ports-02 一般情況下預設的4組埠足夠使用,若仍不夠,可自行新增其他port組。 4、在${JBOSS_HOME}/bin下新增start.bat,start-jc.bat檔案, start.bat內容為:run -c default -b 0.0.0.0 start-jc.bat內容為:run -c default-jc -b 0.0.0.0 依次執行start.bat,start-jc.bat 啟動成功。 我在我的機器上實驗了一個jboss啟動四個例項,啟動成功,截圖如下:
補充說明:
1、此法也適用於同一臺機器上面部署多個JBoss的情況,而不是同一個JBoss下多個例項。
2、如果允許,推薦不同的例項繫結到不同的IP地址上。
3、32位JVM限制無法使用超過2G的記憶體,通過多例項可以充分利用伺服器上大記憶體。
4、不用JBoss例項用於不同用途:開發環境、測試環境、部署環境等。
5、使用此法可以在同一個機器上部署不同版本的JBoss。
6、不同應用對JVM要求不一樣的情況,此法可以使jboss基於不同的jvm。 再囉嗦兩句,有時候你感到開發過程中遇到這樣那樣的問題,感覺這樣那樣的麻煩,其實別人早遇到過相同的問題,感到過相同的不舒服,並且已經總結了成熟的解決方案。如果我們遇到問題,選擇將就,很可能就錯過了這些優秀的解決方案,錯過了提高水平的機會。
This works on jboss-5.1.0.GA : Edit the file ${JBOSS_HOME}/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml as follows -> Change ${jboss.service.binding.set:ports-default} to ${jboss.service.binding.set:ports-01}
This will change all defalt to default+100 port. HTTP - > 8180 and so on.
恍然大明白,jboss允許多個例項,每增加一個例項埠號增加100,即第一個例項埠為8080,那麼第二個例項即為8180. 具體配置如下: 1、複製 ${JBOSS_HOME}/server/default資料夾,貼上到該目錄,重新命名為default-jc,這是根據我自己的專案命名的,你想命名成什麼就命名成什麼,後面的對應上就可以。 2、更改${JBOSS_HOME}/server/default-jc/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml 把 ${jboss.service.binding.set:ports-default}改為 ${jboss.service.binding.set:ports-01} 3、如果再增加例項,那麼再複製default,同時修改bindings-jboss-beans.xml 相應位置為:ports-02 一般情況下預設的4組埠足夠使用,若仍不夠,可自行新增其他port組。 4、在${JBOSS_HOME}/bin下新增start.bat,start-jc.bat檔案, start.bat內容為:run -c default -b 0.0.0.0 start-jc.bat內容為:run -c default-jc -b 0.0.0.0 依次執行start.bat,start-jc.bat 啟動成功。 我在我的機器上實驗了一個jboss啟動四個例項,啟動成功,截圖如下:
補充說明:
1、此法也適用於同一臺機器上面部署多個JBoss的情況,而不是同一個JBoss下多個例項。
2、如果允許,推薦不同的例項繫結到不同的IP地址上。
3、32位JVM限制無法使用超過2G的記憶體,通過多例項可以充分利用伺服器上大記憶體。
4、不用JBoss例項用於不同用途:開發環境、測試環境、部署環境等。
5、使用此法可以在同一個機器上部署不同版本的JBoss。
6、不同應用對JVM要求不一樣的情況,此法可以使jboss基於不同的jvm。 再囉嗦兩句,有時候你感到開發過程中遇到這樣那樣的問題,感覺這樣那樣的麻煩,其實別人早遇到過相同的問題,感到過相同的不舒服,並且已經總結了成熟的解決方案。如果我們遇到問題,選擇將就,很可能就錯過了這些優秀的解決方案,錯過了提高水平的機會。