jboss服務器配置多實例


jboss配置多實例的重要性

在開發, 測試項目的過程中, 我們經常需要在同一台主機上, 同一個服務器上配置多個運行實例。這樣做有一下幾點好處:

  • 在項目開發, 調試階段能最大限度的節省資源
  • 某個實例出現異常或錯誤都不會對其他實例的運行造成影響
  • 需要對某個實例進行重啟、關閉等操作屬於獨立操作, 不會對服務器的運行造成影響

對重要性的介紹就到這里, 對jboss服務器進一步了解可以點擊這里

本文地址: http://www.cnblogs.com/blackmanba/p/3674301.html或者http://forkme.info/run-jbosses/, 轉載請注明源地址。

jboss server配置

解決這個問題的關鍵其實就是對於不同的實例分配不同的端口。

在linux下, 進入到jboss的server目錄下, 拷貝一份實例數據修改項目名, 如圖:

Git Bash

在jboss啟動時默認發布的不同實例需要使用不同的端口監聽。項目復制過來后由於端口一樣所以會導致端口沖突, 無法啟動。解決這個問題最簡單的方法就是直接在配置文件中修改端口。這種方法當然可以, 但是對於jboss服務器來說, 每個實例所需的端口數非常多, 包括http協議的8080、AJP協議的8009、JNP服務的1099、RMI命名服務的1098等等, 並且這些端口配置都分布在不同的文件, 手工修改極易出錯。

考慮到這些因素, jboss服務器提供了Binding-Manager服務, 不用繁瑣的配置就能夠實現多實例運行而端口不沖突。步驟如下:

1. 部署環境

以jboss 4.2.3 GA 為例, server下有兩個不同的實例node1, node2(名字自定義), %JBOSS_HOME%表示jboss安裝目錄。
關鍵文件是%JBOSS_HOME%/docs/examples/binding-manager/sample-bindings.xml, 該文件默認情況下定義了4組不同的端口配置(分別是ports-default、ports-01、ports-02、ports-03), 也就是說默認情況下jboss支持部署4個不同的jboss實例。

2. node2配置

進入node2目錄, 修改node2/conf/jboss-service.xml文件, 配置如下:

    <mbean code="org.jboss.services.binding.ServiceBindingManager" name="jboss.system:service=ServiceBindingManager">  
        <attribute name="ServerName">ports-01</attribute>
        <attribute name="StoreURL">${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml</attribute>
        <attribute name="StoreFactoryClassName">
            org.jboss.services.binding.XMLServicesStoreFactory
        </attribute>
    </mbean>

這里node2配置為使用ports-01的配置。

3. node1配置

node1默認可以不用配置, 這種情況下使用的是jboss提供的默認端口8080, 8009等, 也可以參照第一步的配置, 只需修改"ServerName"與node2不一樣即可。ps: 只能是定義的四組端口范圍內。

4. 自定義端口

這一步不是必須的, 上一步配置的時候已經指定了運行端口。如果你想修改實例http服務監聽端口, 才需進行下列步驟。
進入node1目錄, 修改node1/deploy/jboss-web.deployer/server.xml, 配置如下:

    <Connector port="80" address="0.0.0.0" 
		maxThreads="250" maxHttpHeaderSize="8192"
        emptySessionPath="true" protocol="HTTP/1.1"
        enableLookups="false" redirectPort="8443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true" />

里面port="80"選項可以修改為任意的端口, 只要不沖突即可。ps: node2的配置也與node1一致。

5. 啟動實例

完成上述配置后, 實例的啟動非常簡單。如下:

    %JBOSS_HOME%/bin/run.sh -c node1 -b ip地址 &
    %JBOSS_HOME%/bin/run.sh -c node2 -b ip地址 &

ip地址指的就是項目的地址。

配置說明

如果沒有指定運行端口而采用默認定義的4組端口配置, 端口是以以下方式進行設定的:

http服務端口默認情況下是8080, 其他實例的端口依次在8080的基礎上增加100, 對應關系如下:

	ports-default      8080
	ports-01           8180
	ports-02           8280
	ports-03           8380	

其他端口規律和http端口規律一致。eg: AJP端口依次為8009、8109、8209、8309。

注意事項

  • 上述方法同樣適用於同一台機器上面部署多個jboss而不是同一個jboss下部署多個實例
  • 如果定義的4組端口不夠用, 也可以自行添加其他port組
  • 在正式環境下, 推薦將不同的實例綁定在不同的ip地址上

使用情景

  • 32位JVM限制無法使用超過2G的內存, 通過多實例可以充分利用服務器上的大內存(不理解, 有懂的人請告知)
  • 不同的jboss用於不同的用途, 比如開發環境, 測試環境的分離
  • 在同一台機器上使用不同版本的jboss服務器
  • 在同一台機器上部署基於不同JVM的jboss


免責聲明!

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



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