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

如何在一台机器上运行多个JBoss实例?,jboss,Jboss,我需要在一台机器上运行多个(超过4个)JBoss服务器实例。 我正在使用JBoss 4.2.3 GA。我找到了答案。我们必须将jboss service.xml配置为在同一台机器上运行多个实例 我们可能需要保持同一个“默认”实例与JBOSS_HOME\service下的实例相同 我们必须在JBOSS\u HOME\Server下创建另一个文件夹,如“instance2”。 将JBOSS_HOME\Server\default中的所有内容复制到此新创建的文件夹 现在转到JBOSS\u HOME\S

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

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

我们可能需要保持同一个“默认”实例与JBOSS_HOME\service下的实例相同

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

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

默认情况下,对该xml标记进行注释。我们必须取消对它的评论,并将值ports-00更改为ports-01

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

用这种方法最多可以获得3个实例

要运行更多,我们必须在中添加更多的running标记
JBOSS\u HOME\docs\examples\binding manager\sample bindings.xml

只需更改服务器绑定到的IP,事情就会简单得多

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

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

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

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

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

从cmd promt转到bin文件夹并使用cmd运行实例:


运行-c instancename创建多个环回适配器,并将每个ip地址绑定到不同的实例

无需更换端口


RK

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

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

  • 在default2\deploy\jboss web.deployer\server.xml中

  • 将重定向端口值设置为步骤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" />
    
    注意:用这种方法最多可以得到3个实例。
    要运行更多功能,我们必须在JBOSS_HOME\docs\examples\binding manager\sample bindings.xml中添加更多正在运行的标记。然后可以使用不同的IP地址绑定到每个实例。这样做意味着您不必更改任何默认端口,并且可以更轻松地管理环境。

    我使用本文安装了我的端口。

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

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

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


    第二台服务器还将尝试创建相同的文件并崩溃

    我们可以在JBOSS EAP上轻松做到这一点 首先,只需按原样启动JBOSS

    二审,, 将JBOSS主文件夹复制到其他位置

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


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

    将完整的JBOSS设置复制到新位置,并使用offset选项启动新服务器,该选项将在现有ip上启动服务器,并将端口更改为以前配置的\u port+offset

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

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


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

    您基本上必须为每台服务器设置不同的端口。看看c语言的教程
       <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>
     ...
    
    <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" />
    
    <!-- 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
    
    http://localhost:8080/myapp/
    http://localhost:8180/myapp/
    http://localhost:8280/myapp/