如何在一台机器上运行多个JBoss实例?

时间:2010-06-11 08:42:59

标签: jboss

我需要在一台机器上运行多个(超过4个)JBoss服务器实例。 我正在使用JBoss 4.2.3 GA。

9 个答案:

答案 0 :(得分:13)

我找到了答案。我们必须配置 jboss-service.xml 以在同一台机器上运行多个实例。

我们可能需要保持与 JBOSS_HOME \ Serve r下相同的“默认”实例。

我们必须在 JBOSS_HOME \ Server 下创建另一个名为“instance2”的文件夹。 将 JBOSS_HOME \ Server \ default 中的所有内容复制到此新创建的文件夹中。

现在转到 JBOSS_HOME \ Server \ instance2 目录下的conf文件夹。 编辑 jboss-service.xml 。 在此配置文件中搜索mbean code="org.jboss.services.binding.ServiceBindingManager"

默认情况下,此xml标记已注释。我们必须取消评论并将值 ports-00 更改为 ports-01

然后启动这个instance2 jboss实例。我们可以使用端口号8180访问此应用程序。

我们可以通过这种方式最多使用3个实例。

要运行更多,我们必须添加更多运行标签 的 JBOSS_HOME \文档\例子\绑定管理器\样品bindings.xml

答案 1 :(得分:5)

只需更改服务器绑定的IP,即可简化操作。

您需要多次复制整个jboss文件夹,并将run.bat配置为在启动时使用-b参数。

如果这是一个Windows服务器并且您正在运行jboss作为服务,您可能还想为每个实例编辑service.bat,以便服务器在服务控制面板中都具有不同的名称。

我们在尝试使用不同的HTTP端口时遇到的部分问题是jboss为了不同的目的使用了“很多”端口,并且编辑所有这些端口号在每个实例上都是唯一的。通过更改绑定地址,您可以完全避免此问题。

答案 2 :(得分:2)

创建多个环回适配器并将每个IP地址绑定到不同的实例。

无需更换端口。

RK

答案 3 :(得分:1)

1)使用新名称复制默认文件夹:实例名称

2)在jboss-service.xml中取消注释ServiceBindingManager mbean并将ServerName更改为ports-01或02或03,例如:ports-01和ports-01 / 02/03配置应该在sample-bindings.xml中。 (目前在docs / examples / binding-manager中)并在ports-01 / 02/03标签下提到的所有端口进行更改,以便端口不会发生冲突。请记住,服务器将在绑定端口上运行,如8080/8180/8182。

从cmd promt

转到bin文件夹并使用cmd:

运行实例

运行-c instancename

答案 4 :(得分:1)

在同一台服务器上运行多个JBoss实例:

  1. 我们应该保持“默认”实例与** JBOSS_HOME \ Server
  2. 下的实例相同
  3. 使用新名称(实例名称)复制默认文件夹,例如JBOSS_HOME \ Server下的default2。将 JBOSS_HOME \ Server \ default 中的所有内容复制到此新创建的文件夹中。
  4. 需要在conf / jboss-service.xml中为未使用默认端口的实例启用绑定服务管理器。 一个。 (即)在复制的实例中,转到 JBOSS_HOME \ Server \ default2 目录下的conf文件夹。编辑 jboss-service.xml 。 湾在此配置文件中搜索mbean code="org.jboss.services.binding.ServiceBindingManager"。 C。默认情况下,此xml标记已注释。我们必须取消注释并将值ports-00更改为ports-01。
  5. 在同一文件中,在“套接字传输连接器”下的“配置”部分中,必须将serverBindPort更改为其他值,否则它将与默认值(4446)冲突。

    <mbean code="org.jboss.remoting.transport.Connector"
    name="jboss.remoting:service=Connector,transport=socket"
    display-name="Socket transport Connector">
    ...
    <attribute name="Configuration">
    ...
    <attribute name="serverBindPort">25447</attribute>
    

    ...         

  6. default2/deploy/ejb3.deployer/META-INF/jboss-service.xml中,对于remoting.transport.Connector mbean,端口3873必须更改为其他值,否则将与默认值冲突。

       <mbean code="org.jboss.remoting.transport.Connector"
          name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3">
      <depends>jboss.aop:service=AspectDeployer</depends>
      <attribute name="InvokerLocator">socket://${jboss.bind.address}:25874</attribute>
     ...
    

  7. 在default2 \ deploy \ jboss-web.deployer \ server.xml

  8. 将重定向端口值设置为步骤4中配置的值

    <Connector port="8180" address="${jboss.bind.address}" 
    maxThreads="250" maxHttpHeaderSize="8192"
    emptySessionPath="true" protocol="HTTP/1.1"
    enableLookups="false" redirectPort="25447" acceptCount="100" 
    connectionTimeout="20000" disableUploadTimeout="true" />
    

    此外,步骤5中配置的端口值

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="25010" address="${jboss.bind.address}" protocol="AJP/1.3" //change the connector port value to avoid conflict
    emptySessionPath="true" enableLookups="false" redirectPort="25874" /> // port value configured in step 5
    

    总之,用于设置其他两个实例的目录结构将是一些东西 如下所示,文件名以粗体修改。

    $ JBOSS_HOME /服务器/默认

    $ JBOSS_HOME /服务器/缺省2

    $ JBOSS_HOME /服务器/缺省2 / CONF / JBoss的-service.xml的

    <强> $ JBOSS_HOME /服务器/缺省2 /部署/ ejb3.deployer / META-INF /的jboss-service.xml的

    <强> $ JBOSS_HOME /服务器/缺省2 /部署/ JBoss的-web.deployer / server.xml中**

    $ JBOSS_HOME /服务器/ default3

    $ JBOSS_HOME /服务器/ default3 / CONF / JBoss的-service.xml的

    <强> $ JBOSS_HOME /服务器/ default3 /部署/ ejb3.deployer / META-INF /的jboss-service.xml的

    <强> $ JBOSS_HOME /服务器/ default3 /部署/ JBoss的-web.deployer / server.xml中**

    7.从命令提示符转到bin文件夹并使用cmd:

    运行实例

    运行-c instancename

    在这种情况下,它是:运行-c default2

    使用url访问的应用程序如下:

    http://localhost:8080/myapp/
    http://localhost:8180/myapp/
    http://localhost:8280/myapp/
    

    注意:我们可以通过这种方式最多使用3个实例。 要运行更多,我们必须在 JBOSS_HOME \ docs \ examples \ binding-manager \ sample-bindings.xml 中添加更多运行标记。

答案 5 :(得分:1)

我用这篇文章来安装我的。 http://wiki.adempiere.net/Setup_2_Adempiere_JBoss_server_in_1_physical_server

您应该创建不同的服务来控制adempiere服务器。

此外,如果您使用jasper报告,请为报告使用唯一的文件名,否则您将面临权限被拒绝的异常。

例如:如果将“report.jrxml”附加到两台服务器上。服务器将创建/tmp/report.jrxml tmp文件。

第二台服务器也会尝试创建同一个文件并崩溃

答案 6 :(得分:1)

将完整的JBOSS设置复制到新位置,并使用 offset 选项启动新服务器,该选项将在现有IP上启动服务器并将端口更改为previous_configured_port + offset

standalone.bat -c standalone-full.xml -Djboss.socket.binding.port-offset=100

此命令将默认jboss控制台9990设为10090

现在,您可以在新部署文件夹中添加war文件,并在新端口上开始部署

答案 7 :(得分:0)

最简单,最简单的方法是简单地为托管计算机配置多个IP地址。然后,您可以使用不同的IP地址绑定到每个实例。这样做意味着您不必更改任何默认端口,并且可以更轻松地管理。

答案 8 :(得分:0)

我们可以在JBOSS EAP上轻松完成此操作 首先,只需按原样启动JBOSS即可。

对于第二个例子, 将JBOSS主文件夹复制到其他位置。

转到standalone / configuration / standalone.xml。转到(在文件底部)部分并将port-offset值设置为某个值(EX:10000),该值在当前运行的应用程序上没有任何端口绑定问题。这里默认的port-offeset值为0.

像往常一样启动第二个实例。