我们经常会遇到这种情况,有时候希望在同一台机器上部署若干个JBoss实例,上面运行不同的应用程序,这样的话无论由于什么原因需要对某个JBoss实例进行关闭、重启等操作都不会影响到其它实例上面的应用的正常运行,我们知道JBoss启动时默认发布的不同的服务需要开放一些端口,如果只是简单地拷贝两套JBoss或者在一个JBoss中启动多个配置的话,同时启动多个JBoss实例会由于端口冲突而导致JBoss无法启动。
遇到这种情况可能大家最容易想到的解决办法就是既然端口冲突的话,那我就修改端口呗,这种方法当然也可以,但是JBoss不像Tomcat那样,Tomcat只需要修改两三个端口即可,而JBoss默认发布的服务端口包括http协议的8080、AJP协议的8009、JNP服务的1099、RMI命名服务的1098、RMI/JRMP invoker的4444端口等,而且不是在同一个文件中配置的,有些在server.xml中,有些在配置下的jboss-service.xml文件中,手工修改不但繁琐而且极易出错,尤其是实例多的话。
不过幸运的是JBoss提供了另外一种简便的方法:Binding Manager服务,不需要繁琐的端口配置就可以实现多实例运行端口不冲突,详细步骤如下:
以JBoss 4.2.3 GA为例,假设server下有两个不同的配置node1、node2(名字无所谓,default1、default1也行),%JBOSS_HOME%表示JBoss安装目录。
关键文件是%JBOSS_HOME%\docs\examples\binding-manager\sample-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中定义的四组端口范围内。
3、启动实例
run.bat -c node1 -b 192.168.10.100
run.bat -c node2 -b 192.168.10.100
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实例时,必须注意端口冲突的问题。本文将详细介绍如何在一台机器上成功部署多个JBoss服务器,并重点讲解如何正确地配置这些服务器以避免端口冲突。 #### 一、理解端口冲突问题 ...
本篇文章将详细讲解如何在同一台机器上配置并运行两个独立的JBOSS服务器,这对于开发、测试或部署多个项目环境来说非常有用。 首先,了解JBOSS服务器的基本结构是必要的。JBOSS服务器主要由以下几个部分组成:AS...
在企业级应用服务器JBoss中,有时我们需要在同一台物理机器上运行多个独立的JBoss实例。这在测试环境或开发环境中非常常见,尤其是在进行集成测试或者需要模拟多节点集群环境时。本文将详细介绍如何在JBoss 4.0.2...
然而,在特定场景下,如开发测试环境或资源受限的服务器上,可能需要在同一台机器上运行多个JBoss实例,这就涉及到“一机多开”JBoss的问题。实现这一目标的关键在于正确地配置和调整每个JBoss实例的端口号,以避免...
综上所述,配置多个JBoss实例在一台主机上运行涉及到了端口修改、数据隔离以及适当的系统配置。通过这种方式,可以有效地利用硬件资源,同时提高应用的可用性和扩展性。记住,每次修改配置后,都需要重启相应的JBoss...
在企业级应用开发中,为了提高服务器资源利用率以及更好地进行应用程序的隔离与管理,经常需要在同一台物理服务器上部署多个独立的应用服务器实例。本文将详细介绍如何在 JBoss 4.2 上实现这一需求,即在同一 IP ...
- **多实例**:在同一台物理机器上启动多个JBoss实例,每个实例可以拥有不同的配置文件和端口设置。 - **端口冲突**:当两个JBoss实例尝试使用相同的端口时会发生冲突。解决端口冲突是多实例配置中的关键步骤之一。 ...
JBoss 4.0 是一个历史悠久的企业级Java应用服务器,由Red Hat公司开发,它基于Java EE(Enterprise Edition)标准,为企业级应用提供了一个全面的运行环境。本实例参考PDF格式文档是针对JBoss 4.0的一个详细教程,...
这个项目的名称可能是包含一个或多个演示JMS功能的Web应用。可能包含了Web页面用于触发消息的发送,以及后台服务用于处理消息的接收和处理。通过部署和运行MyTestWeb,可以进一步理解和体验JMS在实际应用中的工作...
JBoss AS默认支持群集系统,多个JBoss实例会自动检测彼此的存在并组成一个群集系统。启动JBoss实例时,可以使用run命令,并指定all配置文件。为了区分不同的群集,每个群集需要有一个唯一的名字。JBoss实例通过在...
2. **部署应用**:将应用部署到每个JBoss实例上。 3. **设置负载均衡器**:根据选择的负载均衡方案进行相应配置,例如如果使用HAProxy,则需要配置监听端口、后端服务器地址列表等参数。 4. **测试验证**:通过压力...
- **域**是指一个由多个JBoss实例组成的逻辑单元,这些实例可以位于同一台物理机器上或分布在不同的服务器上。域允许管理员集中管理一组JBoss实例,包括配置更新、监控和故障恢复等。 - **群集**则是一种特定的...
此外,JBoss AS 5.1.0.GA支持集群和负载均衡,这意味着多个JBoss实例可以协同工作,提高应用的可用性和性能。通过使用JGroups和JBoss clustering模块,可以实现会话复制和故障转移,确保即使在一个服务器出现故障时...
4. **集群部署提升性能**:如果您计划在一个集群环境中部署多个JBoss实例以提高可用性和性能,那么每个实例都必须有不同的端口设置。 #### 二、JBoss 4.x 端口概述 JBoss 4.x 版本使用了多种端口来支持其服务。...
它由一个全局唯一的负载均衡器和多个JBOSS服务器实例(集群节点)组成。负载均衡器接收所有用户请求并分发到各个节点,当检测到某个节点故障时,会自动将请求重定向至其他正常运行的节点,以实现服务的连续性。 2. ...
2. **复制服务器配置**:将一个已配置好的JBoss实例作为模板,复制到其他机器上。修改每个实例的主机名和端口号以避免冲突。 3. **JGroups配置**:编辑`jboss-clustering.xml`,配置JGroups用于节点间通信。选择...
- 域模式支持在一个物理或虚拟主机上部署多个应用服务器实例,并集中管理这些实例。 - **5.3.2 一般配置概念**:文档介绍了各种配置项的作用和设置方法。 - 包括日志配置、JVM设置、网络连接配置等。 - **5.3.3 ...
- 同样,如果在同一台机器上运行多个jBoss实例,也需要修改`jboss-service.xml`文件中的默认端口1098,避免端口冲突。 #### EJB工程的配置 1. **创建EJB项目**:在MyEclipse中,通过“File”菜单下的“New”选项...