zoukankan      html  css  js  c++  java
  • 多个Jboss端口冲突配置;一个Jboss多个server端口配置

    JBoss启动时默认发布的不同的服务需要开放一些端口,如果只是简单地拷贝两套JBoss或者在一个JBoss中启动多个server配置的话,会由于端口冲突而导致JBoss无法启动。

    这时候我们肯定会想到手动去修改这些发生冲突的端口,可是Jboss需要修改的端口实在是太多,如下:

    1. $JBoss_home/server/default/deploy/ejb3.deployer/META-INF/jboss-service.xml 修改3873端口的值;

    2. $JBoss_home/server/default/deploy/jboss-web.deployer/server.xml 修改8080,8009,8443端口值。

    3. $JBoss_home/server/default/conf/jboss-service.xml 修改8083,1098,1099,4444,4445,4446端口值

    4. $JBoss_home/server/default/conf/jboss-minimal.xml 修改1099端口值,与3中保持一致。

    5. $JBoss_home/server/default/deploy/jms/uil2-service.xml 修改8093端口值。

    不过幸运的是JBoss提供了另外一种简便的方法:Binding Manager服务,不需要繁琐的端口配置就可以实现多实例(多个server)运行端口不冲突,详细步骤如下: 

    以JBoss 4.2.3 GA为例,假设server下有两个不同的配置node1、node2(名字无所谓,default1、default1也行),%JBOSS_HOME%表示JBoss安装目录。

    关键文件是%JBOSS_HOME%docsexamplesinding-managersample-bindings.xml,该文件默认情况下定义了4组不同的端口配置(port-default、port-01、port-02、port-03),也就是说默认情况下支持同一台机器部署4个JBoss实例。

    1、node2配置如下
    修改node2/conf/jboss-service.xml文件,配置Service Binding(默认注释掉)如下:

    <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使用的是port-01端口配置。

    2、node1配置如下
    node1默认可以不用配置,正常启动即可,这种情况下使用的是JBoss提供的默认端口8080、8009等,也可以参照第一步的配置,只需修改“ServerName”与node1不一样即可,如ports-02,注意只能是在sample-bindings.xml中定义的四组端口范围内

    4、访问地址
    node1访问地址:http://192.168.10.100:8080(默认不配置的情况)或者http://192.168.10.100:8280(使用port-02的情况)
    node2访问地址:http://192.168.10.100:8180(使用port-01的情况)

    大家也许注意到端口的规律,默认情况下是8080,其它实例的端口依次在8080的基础上增大100,对应关系如下:

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

    当然其他端口如AJP协议端口8009也分别变成8109、8209、8309、8409,其它以此类推

    5、注意事项
    1)上述配置的前提是每个实例的server.xml中HTTP协议的端口配置均为默认的8080,若该端口修改过,则需要修改sample-bindings.xml中port-default中的默认8080端口为server.xml中HTTP协议端口。
    2)上述方法也同样适用于同一台机器上面部署多个JBoss的情况而不是同一个JBoss下多个配置。
    3)一般情况下默认的4组端口足够使用,若仍不够,可自行添加其他port组。
    4)若可能,仍是推荐不用的实例绑定到不同的IP地址上。

    PS.

    同一机器多JBoss实例常用场景:
    1)32位JVM限制无法使用超过2G的内存,通过多实例可以充分利用服务器上大内存。
    2)不用JBoss实例用于不同用途:开发环境、测试环境等。
    3)希望在同一个机器上部署不同版本的JBoss。
    4)希望在同一个机器上部署基于不同JVM的JBoss(不同应用对JVM要求不一样的情况)。

    一开始以为这个方法,只能应用于一个Jboss下配置多个server。测试发现,当时用两个Jboss时,用这种方法也是可以的。所以Jboss还是很人性化的。

  • 相关阅读:
    java编程题古典算法之兔子问题
    java基础之final关键字
    java基础之final关键字
    java基础之静态代码块,局部代码块,构造代码块区别。
    java基础之静态代码块,局部代码块,构造代码块区别。
    java基础之完数判断
    java基础之完数判断
    java基础之二维数组不定义列数
    正则表达式快速入门
    深入理解JSON对象
  • 原文地址:https://www.cnblogs.com/haojiahong/p/4791017.html
Copyright © 2011-2022 走看看