首页 最新文章网站服务器jboss正文

jboss应用部署的多端口管理机制

    大多数时候,在应用部署的初始阶段,流量不是太大的情况下,没必要购买很多台机器来部署不同的应用,所以一台机器上部署3-5个jboss实例是很正常的,不同的实例通过调用不同的端口来和谐运行。而部署过的人都知道,各种配置中涉及到端口的文件有很多,如果要一个个的修改除了工作量大不说,还很容易出错,jbOSS其实提供了端口集中管理的机制,是通过service-bindings.xml文件来实现的,文件中定义了多个以server-name为标志的端口管理节点,该文件在jboss server的根目录下,然后在每个jboss实例中的jboss-server.xml中注册一个端口绑定服务ServiceBindingManager:

ServerName:指定xxx-bindings.xml对应的端口配置 

StoreURL: 指定xx-bindings.xml文件的位置
一旦该服务注册,则tomcat下server.xml的端口设置被忽略,而启用新的端口配置

新建实例步骤:

1、拷贝一份初始的jboss实例至jboss的server目录下

2、将examplesinding-managersample-bindings.xml重命名service-bindings.xml至server目录下,从sample可以看到,jboss默认内置了4个jboss服务实例的端口绑定。部分片段内容如下:

 

      <!-- **************** http-invoker.sar & httpha-invoker.sar*************** -->
      <!-- EJBInvoker -->
      <service-config name="jboss:service=invoker,type=http"
         delegateClass="org.jboss.services.binding.AttributeMAPPingDelegate"
         >
         <delegate-config>
            <attribute name="InvokerURlsuffix">:${port}/invoker/EJBInvokerServlet</attribute>
        </delegate-config>
         <!--
            MUST BE THE SAME AS
            TOMCAT HTTP CONNECTOR BELOW !!!
             -->
         <binding port="8182"/>
      </service-config>

        <!-- JMXInvoker -->
      <service-config name="jboss:service=invoker,type=http,target=Naming"
         delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
         >
         <delegate-config>
            <attribute name="InvokerURLSuffix">:${port}/invoker/JMXInvokerServlet</attribute>
        </delegate-config>
         <!--
            MUST BE THE SAME AS
            TOMCAT HTTP CONNECTOR BELOW !!!
             -->
         <binding port="8182"/>
      </service-config>

        <!-- readonly JMXInvoker -->
      <service-config name="jboss:service=invoker,type=http,target=Naming,readonly=true"
         delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
         >
         <delegate-config>
            <attribute name="InvokerURLSuffix">:${port}/invoker/readonly/JMXInvokerServlet</attribute>
        </delegate-config>
         <!--
            MUST BE THE SAME AS
            TOMCAT HTTP CONNECTOR BELOW !!!
             -->
         <binding port="8182"/>
      </service-config>

3、在jbossserverdefaultconfjboss-service.xml文件中找到ServiceBindingManager对应的节点,默认情况下该节点是处于注释状态,去掉注释,修改ServerName的值

   <mbean code="org.jboss.services.binding.ServiceBindingManager"
     name="jboss.system:service=ServiceBindingManager">
     <attribute name="ServerName">ports-k2d</attribute>
     <attribute name="StoreURL">${jboss.home.url}/server/service-bindings.xml</attribute>
     <attribute name="StoreFactoryClassName">
       org.jboss.services.binding.XMLServicesStoreFactory
     </attribute>
   </mbean>

4、制作jboss服务重启脚本

ps aux | grep k2d  | awk '{ print $2 }' > kill-2.txt
kill -9 `cat kill-2.txt`
rm -f kill-2.txt
rm -fr /jboss/server/k2d/work/jboss.web
Nohup run.sh -b xxx.xxx.xxx.xxx-c k2d </dev/null 1>/dev/null 2>&1 &

5、配置脚本相关的环境变量,可以在任何目录下重启该jboss服务

6、编写日志分割和压缩脚本

 

评论

觉得有用就打赏吧
关注本站公众号,享受更多服务!
联系方式
QQ:########
地址:中国·辽宁
Email:2727987445#qq.com
Copyright ©2015-2023.Powered by 云水客 | 网站地图 | 辽ICP备14000512号-5