通过Jboss启动多实例解决服务器资源限制问题


项目组现在有四个项目,后续还有项目会上马,而且还要分测试服务器和部署服务器。但我们实际能动用的服务器只有两台,显然不够用。

所以尝试在一台服务器上部署多个jboss,端口冲突是必然的。

jboss不像tomcat改2,3个端口就可以了,它需要改很多端口,而且还在不同的文件夹下,稍不注意就会落下。

而且一台机器上还会冗余很多份jboss。

考虑是不是有更好的方式,例如一个jboss以不同的实例运行,既然我想到了这个问题,想来人家jboss开发者肯定也已经考虑到了。

果然,在jboss官网论坛看到了如下的叙述:

This works on jboss-5.1.0.GA : Edit the file ${JBOSS_HOME}/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml as follows -> Change ${jboss.service.binding.set:ports-default} to ${jboss.service.binding.set:ports-01}

This will change all defalt to default+100 port. HTTP - > 8180 and so on.


恍然大明白,jboss允许多个实例,每增加一个实例端口号增加100,即第一个实例端口为8080,那么第二个实例即为8180.


具体配置如下:
1、复制 ${JBOSS_HOME}/server/default文件夹,粘贴到该目录,重命名为default-jc,这是根据我自己的项目命名的,你想命名成什么就命名成什么,后面的对应上就可以。
2、更改${JBOSS_HOME}/server/default-jc/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
把 ${jboss.service.binding.set:ports-default}改为 ${jboss.service.binding.set:ports-01}
3、如果再增加实例,那么再复制default,同时修改bindings-jboss-beans.xml 相应位置为:ports-02

一般情况下默认的4组端口足够使用,若仍不够,可自行添加其他port组。

4、在${JBOSS_HOME}/bin下添加start.bat,start-jc.bat文件,
start.bat内容为:run -c default -b 0.0.0.0
start-jc.bat内容为:run -c default-jc -b 0.0.0.0

依次运行start.bat,start-jc.bat


启动成功。

我在我的机器上实验了一个jboss启动四个实例,启动成功,截图如下:

通过Jboss启动多实例解决服务器资源限制问题_第1张图片

补充说明:

1、此法也适用于同一台机器上面部署多个JBoss的情况,而不是同一个JBoss下多个实例。
2、如果允许,推荐不同的实例绑定到不同的IP地址上。
3、32位JVM限制无法使用超过2G的内存,通过多实例可以充分利用服务器上大内存。
4、不用JBoss实例用于不同用途:开发环境、测试环境、部署环境等。
5、使用此法可以在同一个机器上部署不同版本的JBoss。
6、不同应用对JVM要求不一样的情况,此法可以使jboss基于不同的jvm。


再啰嗦两句,有时候你感到开发过程中遇到这样那样的问题,感觉这样那样的麻烦,其实别人早遇到过相同的问题,感到过相同的不舒服,并且已经总结了成熟的解决方案。如果我们遇到问题,选择将就,很可能就错过了这些优秀的解决方案,错过了提高水平的机会。



你可能感兴趣的:(Jboss,Web开发)