JBOSS EAP 6 系列五 Managed domains 管理域最主要的功能是“统一部署,统一配置”

来源:互联网 发布:成志网络 编辑:程序博客网 时间:2024/05/21 06:03

摘要

    本文首先介绍Managed Domain的概念,管理域最主要的功能是“统一部署,统一配置”。接下来通过一个实例在“统一配置”部分实现一个双机配置起来的域,最后在“统一部署”部分,我们将一个war包部署到域组的所有成员当中并测试部署效果。

一、 Managed domains的概念

    管理域组织各物理机上的虚拟服务为服务组,使得所有服务器在一个地方统一配置、统一部署。配置为同一服务组内的机器可以自动扩展,也可以在一台主机上根据不同的端口绑定来设置多个实例。Managed Domain要区别与Cluster,Cluster的主要功能是负载均衡、容灾,而Managed domain的目的主要在于统一管理



二、Managed domains的统一配置


2.1 实验原理

    此配置的主要内容是6台虚拟机,分别在两台物理主机上。两台主机分别取名为Master(192.168.0.115)和Server2(192.168.0.116)。由Master来负责整个Domain的统一配置和统一部署。


2.2 创建用户

    首先需要在master中创建两个用户:用户1:admin用于进入web console进行统一配置和部署。用户2:server2用于使server2能接入master获取master中的配置信息。

2.2.1 创建domain管理用户admin

    在$JBOSS_HOME/bin下有一个add-user命令用于创建用户:



2.2.2 创建lishehe接入master的用户lishehe


2.3 配置接入权限给lishehe

进入主机lishehe,编辑$JBOSS_HOME/domain/configuration/host.xml,添加粗体部分,


<span style="font-size:18px;"><?xml version='1.0' encoding='UTF-8'?>  <host <strong>name="server2"</strong> xmlns="urn:jboss:domain:1.5">      <management>          <security-realms>              <security-realm name="ManagementRealm">                 <strong><server-identities>                     <secret value="IWxpc2hlaGUxMjM0NTY="/>               </server-identities></strong> </span>


2.4 指明domain控制器

    server2的host.xml的<management>标签后加入<domain-controller>标签,如下,

<span style="font-size:18px;"><domain-controller>     <!-- Alternative remote domain controller configuration with a host and port -->     <remote host="<strong>192.168.*.*</strong>" port="<strong>9999</strong>" security-realm="<strong>ManagementRealm</strong>"/>  </domain-controller> </span>
remote标签中的host属性指明master的IP,9999端口是默认的native-interface指向的端口,security-realm指明上一节2.3中的名称ManagementRealm。


2.5 设置对外访问IP

配置Master的host.xml,找到interfaces标签,将其中的127.0.0.1修改为本机IP(192.168.0.115),使得外界能够访问到jboss在本机上的服务。

<span style="font-size:18px;"><interfaces>      <interface name="management">          <inet-address value="${jboss.bind.address.management:192.168.0.115}"/>      </interface>      <interface name="public">         <inet-address value="${jboss.bind.address:192.168.0.115}"/>      </interface>      <interface name="unsecure">          <!-- Used for IIOP sockets in the standard configuration.               To secure JacORB you need to setup SSL -->          <inet-address value="${jboss.bind.address.unsecure:192.168.0.115}"/>      </interface>  </interfaces></span>


配置Server2的host.xml,找到interfaces标签,将其中的127.0.0.1修改为本机IP(192.168.0.116),使得外界能够访问到jboss在本机上的服务。

<span style="font-size:18px;"><interfaces>      <interface name="management">          <inet-address value="${jboss.bind.address.management:192.168.0.116}"/>      </interface>      <interface name="public">         <inet-address value="${jboss.bind.address:192.168.0.116}"/>      </interface>      <interface name="unsecure">          <!-- Used for IIOP sockets in the standard configuration.               To secure JacORB you need to setup SSL -->          <inet-address value="${jboss.bind.address.unsecure:192.168.0.116}"/>      </interface>  </interfaces></span>

2.6 设置管理组

配置Master的host.xml,找到servers标签,做如下修改。


<span style="font-size:18px;"><servers>      <!-- server name="server-one" group="main-server-group" -->      <server name="server-one" group="other-server-group">          <!-- Remote JPDA debugging for a specific server          <jvm name="default">            <jvm-options>              <option value="-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"/>            </jvm-options>         </jvm>         -->      </server>      <server name="server-two" group="other-server-group" auto-start="true">          <!-- server-two avoids port conflicts by incrementing the ports in               the default socket-group declared in the server-group -->          <socket-bindings port-offset="150"/>      </server>      <server name="server-three" group="other-server-group" auto-start="true">          <!-- server-three avoids port conflicts by incrementing the ports in               the default socket-group declared in the server-group -->          <socket-bindings port-offset="250"/>      </server>  </servers> </span>

可以看到其中有三个<server>标签,每一个都对应一台虚拟机,每个<server>标签中又都有一个group用来设置管理组。名字相同的虚拟机由域中的一个管理组统一管理,统一部署。如上,我们设置server-one为一个管理组main-server-group,server-two和server-three属于同一个管理组other-server-group。


配置server2的domain.xml,找到servers标签,做如下修改。

<span style="font-size:18px;"><span style="font-size:12px;">    <servers>          <server name="server-four" group="main-server-group">              <!-- Remote JPDA debugging for a specific server              <jvm name="default">                <jvm-options>                  <option value="-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"/>                </jvm-options>             </jvm>             -->          </server>          <server name="server-five" group="main-server-group" auto-start="true">              <!-- server-two avoids port conflicts by incrementing the ports in                   the default socket-group declared in the server-group -->              <socket-bindings port-offset="150"/>          </server>          <server name="server-six" group="other-server-group" auto-start="true">              <!-- server-three avoids port conflicts by incrementing the ports in                   the default socket-group declared in the server-group -->              <socket-bindings port-offset="250"/>          </server>      </servers></span> </span>

从配置中可以看出,server2中也配置了3台虚拟机,server-four、server-five与master的server-one同属于main-server-group管理组。而server-six和server-two、server-three同属于一个管理组other-server-group。


*注:socket-bindings port-offset指明的是端口偏移量,如<socket-bindings port-offset="150"/>则该虚拟机上的所有端口在统一偏移150,如8080为默认的http访问端口,则偏移过后访问端口为:8080+150 = 8230,后面3.4测试的时候我们会看到。


2.7 启动

    跟名或者删除server2中$JBOSS_HOME/domain/configuration中的domain.xml文件

分别在master和server2的$JBOSS_HOME/bin中使用domain.sh启动jboss:

启动后能从master的console中看到如下日志表明成功启动各个虚拟机,

同时如果server2启动好之后,master的log中会出现一条记录如下:

<span style="font-size:18px;">[Host Controller] 04:29:46,373 INFO  [org.jboss.as.domain] (slave-request-threads - 1) JBAS010918: Registered remote slave host "server2", JBoss EAP 6.2.0.GA (AS 7.3.0.Final-redhat-14) </span>

2.8 统一配置

    有了如上的2.1到2.7的步骤,一个包含两台物理机,6台虚拟机的Managed Domain就配置好了。这一小节主要介绍统一配置。整个域统一配置的地方在master的$JBOSS_HOME/domain/configuration/domain.xml文件中。

  我们倒着往上看domain.xml这个文件:

    <server-groups>用于配置管理组各组对应的主要配置profile。

<span style="font-size:18px;">    <server-groups>          <server-group name="main-server-group" profile="full">              <jvm name="default">                  <heap size="1303m" max-size="1303m"/>                  <permgen max-size="256m"/>              </jvm>              <socket-binding-group ref="full-sockets"/>          </server-group>          <server-group name="other-server-group" profile="full-ha">              <jvm name="default">                  <heap size="64m" max-size="512m"/>                  <permgen max-size="124m"/>              </jvm>              <socket-binding-group ref="full-ha-sockets"/>          </server-group>      </server-groups>  </span>

如上main-server-gourp配置的profile为full,other-server-group配置的profile为full-ha。<server-group>中有两个配置项,<jvm>为每组指明其中的虚拟机的jvm配置信息。<socket-binding-group>指明各组的默认访问端口main-server-group使用full-sockets,other-server-group使用full-ha-sockets。

再往上是</socket-binding-groups>,其中可以有多个<socket-binding-group>标签,指明访问端口。

<span style="font-size:18px;">    <socket-binding-group name="full-ha-sockets" default-interface="public">          <socket-binding name="ajp" port="8009"/>          <socket-binding name="http" port="8080"/>          <socket-binding name="https" port="8443"/>          <socket-binding name="jacorb" interface="unsecure" port="3528"/>          <socket-binding name="jacorb-ssl" interface="unsecure" port="3529"/>          <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:192.168.0.110}" multicast-port="10001"/>          <socket-binding name="jgroups-tcp" port="7600"/>          <socket-binding name="jgroups-tcp-fd" port="57600"/>          <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>          <socket-binding name="jgroups-udp-fd" port="54200"/>          <socket-binding name="messaging" port="5445"/>          <socket-binding name="messaging-group" port="0" multicast-address="${jboss.messaging.group.address:231.7.7.7}" multicast-port="${jboss.messaging.group.port:9876}"/>          <socket-binding name="messaging-throughput" port="5455"/>          <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>          <socket-binding name="remoting" port="4447"/>          <socket-binding name="txn-recovery-environment" port="4712"/>          <socket-binding name="txn-status-manager" port="4713"/>          <outbound-socket-binding name="mail-smtp">              <remote-destination host="localhost" port="25"/>          </outbound-socket-binding>      </socket-binding-group>  </span>

 其中default-interface用于指明虚拟机IP,这在2.5中有设置。


    再往上是<interfaces>这个在host.xml中各自单独设置。


    再往上是<profiles>标签,用于具体组件的申明和配置。配制方法与单机的standalone.xml一样,在此就不过多赘述。到此为止整个域就基本配置好了。进入下一博客查看统一部署部分,介绍查看Managed Domain以及统一部署实验。


1 0
原创粉丝点击