linux下jboss eap 6.3 域(Domain)模式配置

jboss eap 6.3 域(Domain)模式配置(开始之前先安装jdk)

jboss提供了二种运行模式:standalone(独立运行模式)、domain(域模式),日常开发中,使用standalone模式足已;但生产部署时,一个app,往往是部署在jboss集群环境中的,如果所有jboss server均采用standalone模式,会给运维带来极大的工作量,需要每台jboss server上逐一部署/更新,显然不适合。

domain模式正是为了解决这一问题,该模式下,所有jboss server可以划分成不同的group(注:这里的jboss server并不一定要对应某台物理机或虚拟机,一个os上,可以同时run多个jboss server实例,所以本文中的jboss server均指某个运行中的jboss server instance),每个group中可以包含多个jboss server,所有这些jboss server中,可以指定一台做为域控制器(domain controller),俗称master server,其它jboss server均为Home Controller(俗称slave server)。

master上可以控制所有jboss server,并监控其运行情况,部署应用时,一个war包,只需要部署到group上,该group中的所有jboss server即会同步自动部署。

下面是配置步骤:

环境:

Centos6.5,jboss eap 6.3

机器资源:

172.21.129.181 (master)、172.21.129.57(slave57)、172.21.129.128(slave128) - 即:181为主机,57、128这二台机器为slave

安装GDK

$yum install java-1.6.0-openjdk-devel

$java –version

一、下载安装jboss eap 6.3 

目前jboss eap的最新版本是jboss-eap-6.3.0.zip ,下载地址 https://www.jboss.org/products/eap/download/

下载完成后,解压到某个目录即可 (下面用jboss_home代替jboss-eap-6.3.0根目录)

创建新的用户:或者,可以使用任何用户名。然而,用户名必须在指定的文件jboss-as.conf。

$ adduser jboss

更改安装目录的所有权:我们需要分配适当的所有权到安装目录为新创建的JBoss用户发出命令:

$ chown -fR jboss.jboss /usr/local/jboss_home/

二、master server配置

2.1配置host.xml
   a、用 host-master.xml覆盖原来的host.xml
   host-master.xml(原host.xml默认配置,很全)    
   b、master模版,这个模版只做domain.如果打算还运行server,需要增加下面内容: 
    jboss.bind.address ( host-master.xml没有这个,需要从host.xml复制,如果没有这个节点只能做manager)

<interface name="public">
    <inet-addressvalue="${jboss.bind.address:127.0.0.1}"/>
  </interface>
  <interface name="unsecure">
  <!-- Used for IIOPsockets in the standard configuration.To secure JacORB you need to setup SSL-->
  <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
  </interface>    
    
    
    servers 段默认在host-master.xml中也没有需要从host.xml中复制。其中port-offset参数用来计算server监听的端口。默认以8080开始
    <servers>
    <servername="server-one" group="main-server-group">
      <!-- Remote JPDA debugging for a specificserver
     <jvm name="default">
       <jvm-options>
      <optionvalue="-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"/>
      </jvm-options>
     </jvm>
     -->
    </server>
     <server name="server-two"group="main-server-group" auto-start="true">
   <!-- server-twoavoids port conflicts by incrementing the ports in the default socket-groupdeclared in the server-group -->
   <socket-bindingsport-offset="150"/>
  </server>
</servers>    
  c、修改<interfaces>,把127地址修改为master的实际地址。(否则,无法从远程通过浏览器,访问jboss 管理控制台)
  d、修改jvms 可选。根据机器配置与应用情况
  e、修改servers 可选,从控制台看,应该可以从界面增加。
     另外不同host controler下面的的server即使同名也不会冲突。

2.2 以domain模式启动master server

jboss_home\bin\domain.sh

2.3 进入master jboss 控制台

http://172.21.129.181:9990/console/

首次进入,可能会提示没有创建管理员帐号,

$cd jboss_home/bin

$./add-user.sh

添加 Management User,然后输入用户名、密码(密码有一定要求,不能太简单),参考下图:当询问用户属于哪个组是可以为创建的jboss用的组,也可以直接回车。

后面一路yes+回车即可,最后有一个加密字符串,最好记下来,如果jboss上的某些应用要求安全认证,这个值会用上

2.4 domain配置服务器
配置domain.xml
   这个文件看懂就行,默认就可以运行。

编辑master的文件domainxml “domain/configuration/domain.xml”文件

<subsystemxmlns="urn:jboss:domain:messaging:1.4">

<hornetq-server>

<cluster-password>

${jboss.messaging.cluster.password:CHANGEME!!}

</cluster-password>

<persistence-enabled>true</persistence-enabled>

<journal-type>NIO</journal-type>

<journal-min-files>2</journal-min-files>

改为

<subsystemxmlns="urn:jboss:domain:messaging:1.4">

<hornetq-server>

<cluster-password>

Admin_1234</cluster-password>

<persistence-enabled>true</persistence-enabled>

<journal-type>NIO</journal-type>

<journal-min-files>2</journal-min-files>

其中的admin_1234为用add-user.sh创建mgmt-users.properties用户时的密码,用它来进行认证。

slave也这样修改。

2.5 创建group、server

进入控制台后,可以看到jboss已经默认创建了一些group及server,先把他们全干掉吧(通常,我们会创建自己的group/server)

参考下面这个界面,创建二个组my-group-1,my-group-2

tips: 创建group时,profile建议选择full-ha,socket-binding-group选择full-ha-sockets (以后会讲如何做jboss集群配置,负载均衡、智能容错时,需要使用full-ha profile)

参考下面的图,在master server上创建4个server

注:创建server时,有一个Port Offset选项(参考下图)

解释一下,默认情况下server的端口是8080,Port Offset指端口偏移量,如果按上图配置,Port Offset指定为5,则表示该server创建后,对应的端口为8080+5,即8085端口 (可以用http://172.21.129.181:8085/ 来访问)

tips: 如果一个server已经处于started状态,是无法remove的,可以先到下面的界面,把该server stop掉,然后再回这个界面,就可以Remove了

三、Slave Server配置

3.1 将jboss eap 6.3解压到172.21.129.57这台slave机器上

3.2 进入jboss_home\domain\configuration,将原来的host.xml改名备份,然后再将host-slave.xml复制一份,并改名为host.xml

3.3 修改host.xml

a)

1        <management-interfaces>

2            <native-interface security-realm="ManagementRealm">

3                 <socketinterface="management" port="${jboss.management.native.port:9099}"/>

4            </native-interface>

5        </management-interfaces>

这里的9999端口,改成其它不使用的端口(比如:9099),否则slave server上的9999端口,与master server上的管理端口冲突,最后启动时,会报错

b)

1     <domain-controller>

2       <remote host="${jboss.domain.master.address:172.21.129.181}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>

3     </domain-controller>

第2行,指定master server的IP(本文中为172.21.129.181),这样slave在启动时,才知道去连哪一台master

c)

1     <interfaces>

2         <interfacename="management">

3             <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>

4         </interface>

5         <interfacename="public">

6            <inet-addressvalue="${jboss.bind.address:0.0.0.0}"/>

7         </interface>

8         <interfacename="unsecure">

9             <!-- Used for IIOP sockets in the standardconfiguration.

10                 To secure JacORByou need to setup SSL -->

11            <inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/>

12        </interface>

13     </interfaces>

原来的127.0.0.1,改成slave server的真实IP或0.0.0.0,否则slave上的应用,只能在slave本机访问

d)

1     <servers>

2        <server name="slave-server-8082" group="my-group-2">

3            <socket-bindings port-offset="2"/>

4        </server>

5        <server name="slave-server-8083" group="my-group-2">

6            <socket-bindings port-offset="3"/>

7        </server>

8     </servers>

手动在slave上创建二个server,并加入到my-group-2(注:group的值,必须是在master server上创建过的,否则启动时,slave上的server无法正常加入到master相关的group中)

e)

1<host name="slave57" xmlns="urn:jboss:domain:1.6">

最开头的host节点上,加一个name="xxx"的属性(本文中为slave57),这个name值最终会显示在master server的jboss 控制台中,建议起一个容易识别的名称。需要用add-user.sh建立一个slave57的管理员用户,最后会生成<secret value="xxxx" />的字符串,记住。

四、安全认证配置

4.1 回到master server上,添加一个名为slave57的管理员帐号,并记住最后生成的<secretvalue="xxxx" />的字符串(xxx为密码经过base64处理后的内容)

4.2 回到slave57这台server中,再次编辑host.xml,将<secret value="xxxx" />的内容替换

1<server-identities>

2                      <!-- Replace this with either a base64 password ofyour own, or use a vault with a vault expression -->

3                      <!--<secretvalue="c2xhdmVfdXNlcl9wYXNzd29yZA=="/>-->

4                      <secretvalue="c2xhdmU1Ny4xMjM="/>

5                 </server-identities>

中的<secretvalue=... />部分

解释:slave启动时,需要连接注册到master的jboss中,连接过程需要安全认证,这里的secret相当于认证的钥匙,而认证的用户名即为:正在连接的slave机器上jboss中host.xml中<host name=‘xxx‘>这个节点中的name值,所以4.1需要在master中创建一个名为“slave57”的管理员

4.3 依次以domain模式启动master、slave57 上的jboss

顺利的话,master的jboss控制台里,就能看到slave57已经自动注册进来了

另一台slave服务器,类似的做法,host.xml中<host>节点的name为slave128,创建的server为

1     <servers>

2        <server name="slave-server-8080" group="my-group-1"/>

3        <server name="slave-server-8081" group="my-group-1">

4            <!-- server-twoavoids port conflicts by incrementing the ports in

5                 the defaultsocket-group declared in the server-group -->

6            <socket-bindings port-offset="1"/>

7        </server>

8     </servers>

这样,我们就创建了8个jboss server实例(4个在master server上,另外4个分散在slave57、slave128上),共划分为2组。

五、应用部署

进入部署界面(如上图),点击Add,添加一个war包,再Assign,分配到某一个group,即可自动部署到该group下所有server。如果想把一个app,部署到多个group,也没问题,再次点击assign,再分配到另一个group。

以本文为例,部署了一个名为SSO的应用到my-group-1、my-group-2后,对应的8台jboss server应该均可访问,即:

http://172.21.129.181:8080/SSO/

http://172.21.129.181:8081/SSO/

http://172.21.129.181:8082/SSO/

http://172.21.129.181:8083/SSO/

http://172.21.129.57:8082/SSO/

http://172.21.129.57:8083/SSO/

http://172.21.129.128:8080/SSO/

http://172.21.129.128:8081/SSO/

这8个url均可访问

原作者:紫云飘雪  http://9388567.blog.51cto.com/9378567/1593543

参考文章:菩提树下的杨过http://yjmyzz.cnblogs.com

对其进行更改,菩提树下的杨过是基于windows的环境搭建

时间: 2024-08-02 02:50:30

linux下jboss eap 6.3 域(Domain)模式配置的相关文章

jboss eap 6.3 域(Domain)模式配置

jboss提供了二种运行模式:standalone(独立运行模式).domain(域模式),日常开发中,使用standalone模式足已:但生产部署时,一个app,往往是部署在jboss集群环境中的,如果所有jboss server均采用standalone模式,会给运维带来极大的工作量,需要每台jboss server上逐一部署/更新,显然不适合. domain模式正是为了解决这一问题,该模式下,所有jboss server可以划分成不同的group(注:这里的jboss server并不一定

linux下jboss eap 6.3 集群(cluster)配置

jboss eap 6.3 集群(cluster)配置 接上一篇继续,Domain模式解决了统一管理多台jboss的问题,今天我们来学习如何利用mod_cluster来实现负载均衡.容错. mod_cluster是jboss的一个开源集群模块(基于apache 2.2.x),官网地址为http://mod-cluster.jboss.org/ ,下面是使用步骤: 一.从官网下载binary文件 http://mod-cluster.jboss.org/downloads/1-2-6-Final-

hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)

Linux下JDK环境变量的设置(三种配置环境变量的方法) Linux下JDK环境变量的设置(三种配置环境变量的方法) ①修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题. vi /etc/profile 在profile文件末尾加入: JAVA_HOME=/usr/share/jdk1.5.0_05PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_H

linux下编译qt5.6.0静态库——configure配置

 随笔 - 116  文章 - 4  评论 - 7 linux下编译qt5.6.0静态库--configure配置 linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberry选项: Android 选项: 生成makefile 遇到链接检查失败的情况 生成makefile后进行编译 编译时的错误 多重定义'QT_MODBUS()'和'QT_MODBU

Linux下几种并发服务器的实现模式

Linux下的几种并发服务器的设计模式 1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循环服务器:一个server只能一次只能接收一个client,当当前client结束访问之后才能进行下一个client的连接. 2.并发服务器:一个server同一时间可以响应很多客户端的访问. 3>select+多线程模式 并发服务器的三种实现方式 1.多进程并发

Linux下安装并使用Java开发opencv的配置

inux编译安装opencv 首先, linux下安装opencv其实不麻烦的, 参考文档即可完成: http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html 大致有以下几个步骤: 1) 安装gcc以及cmake等等乱七八糟的软件(不过ubuntu下默认差不多都有了吧…) sudo apt-get install build-essential python-dev cmake

【转】linux下安装ssh服务器端及ssh的安全配置

一.在服务器上安装ssh的服务器端. $ sudo apt-get install openssh-server 2. 启动ssh-server. $ /etc/init.d/sshrestart 3. 确认ssh-server已经正常工作. $ netstat -tlp tcp6    0    0 *:ssh                *:*                   LISTEN     - 看到上面这一行输出说明ssh-server已经在运行了. 4. 在客户端通过ssh登

inux下jboss eap 6.3 集群(cluster)-Session 复制(Replication)

本文算是前一篇的后续,java web application中,难免会用到session,集群环境中apache会将http请求智能转发到其中某台jboss server.假设有二个jboss server:Server A,Server B,Session值在Server A上.用户在访问某一个依赖session的页面时,如果第一次访问到Server A,能正常取到Session值,刷新一下,如果这时转发到Server B,Session值取不到,问题就来了. 解决的办法简单到让人不敢相信,

Linux下安装JDK和TOMCAT,并简单配置虚拟主机

JDK安装 首先,用yum list |grep jdk 命令检测系统是否有自带安装的rpm包的 [[email protected] ~]# yum list | grep jdk file:///mnt/cdrom/repodata/repomd.xml: [Errno 14] Could not open/read file:///mnt/cdrom/repodata/repomd.xml Trying other mirror. java-1.6.0-openjdk.i686