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即会同步自动部署。

下面是配置步骤:

环境:

windows ,jboss eap 6.3

机器资源:

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

一、下载安装jboss eap 6.3 

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

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

二、master server配置

2.1 进入 "jboss_home\domain\configuration",打开host.xml

     <interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:172.21.129.181}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:172.21.129.181}"/>
</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:172.21.129.181}"/>
</interface>
</interfaces>

将所有127.0.0.1的地址,换成master server对应的真实IP(否则,无法从远程通过浏览器,访问jboss 管理控制台)

2.2 以domain模式启动master server

jboss_home\bin\domain.bat

2.3 进入master jboss 控制台

http://172.21.129.181:9990/console/

首次进入,可能会提示没有创建管理员帐号,可参考 vmware安装cent os 6.5 + oracle 11g xe + jboss eap 6.2 + weblogic 12c+ webshpere mq 7.5 一文中的 3.4 c)中的相关内容,创建管理员

2.4 创建group、server

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

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

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

重要提示:同一个局域网里如果有多个master,如果这些master上的group名称有重复,则只有第一master能启动成功后,后面的master启动时会报错,建议每个master上的group命名时,加上master的IP,比如group+IP地址,这样肯定不会重复!

参考下面的图,在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)

         <management-interfaces>
<native-interface security-realm="ManagementRealm">
<socket interface="management" port="${jboss.management.native.port:9099}"/>
</native-interface>
</management-interfaces>

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

b)

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

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

c)

     <interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</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:0.0.0.0}"/>
</interface>
</interfaces>

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

d)

     <servers>
<server name="slave-server-8082" group="my-group-2">
<socket-bindings port-offset="2"/>
</server>
<server name="slave-server-8083" group="my-group-2">
<socket-bindings port-offset="3"/>
</server>
</servers>

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

e)

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

最开头的host节点上,加一个name="xxx"的属性(本文中为slave57),这个name值最终会显示在master server的jboss 控制台中,建议起一个容易识别的名称

四、安全认证配置

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

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

 <server-identities>
<!-- Replace this with either a base64 password of your own, or use a vault with a vault expression -->
<!--<secret value="c2xhdmVfdXNlcl9wYXNzd29yZA=="/>-->
<secret value="c2xhdmU1Ny4xMjM=" />
</server-identities>

中的<secret value=... />部分

解释: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为

     <servers>
<server name="slave-server-8080" group="my-group-1"/>
<server name="slave-server-8081" group="my-group-1">
<!-- server-two avoids port conflicts by incrementing the ports in
the default socket-group declared in the server-group -->
<socket-bindings port-offset="1"/>
</server>
</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均可访问

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

  1. jboss eap 6.3 集群(cluster)配置

    接上一篇继续,Domain模式解决了统一管理多台jboss的问题,今天我们来学习如何利用mod_cluster来实现负载均衡.容错. mod_cluster是jboss的一个开源集群模块(基于apac ...

  2. JBOSS EAP 6 系列六 公共模块的jar配置到jboss的modules详细配置

    公司项目中遇到并要解决的问题 1:原则上除了自己写的代码之外,公共的jar不应该都在打包的时候打包到ear里面,这样的话包太大,也不符合的分层的逻辑,在jboss容器内部,每个ear的包重复jar都会 ...

  3. jboss eap 6.2+ 版本中 加密datasource密码等敏感信息

    默认情况下,在jboss eap 6.2+ 管理控制台创建datasource后,会在standalone.xml(独立模式)或host.xml(域模式)中以明文保存相关敏感信息. 这会给服务器留下安 ...

  4. JBOSS EAP 6 系列一 新特性

    在项目中,采用的架构是Springmvc+spring+EJB+Jpa等架构,当然服务器是Jboss,本次Jboss我们采用的是JBossEap6.2,Jboss7的新特性与Jboss4.5的大的改变 ...

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

    摘要 本文首先介绍Managed Domain的概念,管理域最主要的功能是"统一部署,统一配置".接下来通过一个实例在"统一配置"部分实现一个双机配置起来的域, ...

  6. CAS (8) —— Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端)

    CAS (8) -- Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端) jboss版本: jboss-eap-6.4-CVE-2015-7501 jdk版本 ...

  7. JBoss 7/WildFly Domain 模式怎样配置 Server 启动的 JVM 參数

    本文演示JBoss 7/WildFly Domain 模式怎样配置 Server 启动的 JVM 參数: 例如以下编辑Domain 模式配置文件 domain/configuration/domain ...

  8. 使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置

    本文简单介绍,使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置.本配置在windows上测试通过,linux下应该是一样的.可能要稍作调整.后面 ...

  9. JBoss AS7(Application Server 7)的Standalone模式和Domain模式

    JBoss AS7(Application Server 7)支持两种引导模式:standalone和domain(域). Standalone模式对于很多应用,并不需要domain管理能力,JBos ...

随机推荐

  1. js DOM Document类型

    JavaScript通过Document类型访问文档.在浏览器中,document对象是HTMLDocument(继承自 Document类型)的一个实例,表示整个HTML页面.document对象是 ...

  2. SQL Server(八)——触发器

    触发器是一类特殊的存储过程,在对表update,insert或delete语句时自动执行, 没有参数,没有返回值: 一.触发器类型 1.for触发器 在动作执行之后触发(增删改执行完成后,触发器中的代 ...

  3. Learning The Bash Shell读书笔记(整理)

    最近搞了一本书 Learning Bash Shell,发现有人已经写了阅读笔记,我就在这边整理一下 来自blog:http://blog.sina.com.cn/n4mine Learning Th ...

  4. 从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。

    Scanner sc=new Scanner(System.in); System.out.println("请输入一个正整数:"); int ss=sc.nextInt(); i ...

  5. Linux服务器文件删除空间未释放的问题

    一.问题起源 在Linux系统中,通过rm删除文件将会从文件系统的目录结构上解除链接(unlink),如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件磁盘空间也一直被占用 这样就 ...

  6. 项目搭建系列之一:使用Maven搭建SpringMVC项目

    约定电脑都安装了eclipse,且已配置好Maven以及eclipse插件. 1.Eclipse 2.maven 3.Eclipse 需要安装maven插件.url:maven - http://do ...

  7. android 布局下划线

    <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_cont ...

  8. TCL校园招聘——软件开发工程师(java) 只招5个。。。

    简介 TCL集团股份有限公司创立于1981年,是全球性规模经营的消费类电子企业集团之一,广州2010年亚运会合作伙伴,总部位于广东省惠州市仲恺高新区TCL科技大厦.旗下拥有TCL集团.TCL多媒体科技 ...

  9. AngularJS基础概念

    作用域.控制器.指令 作用域 应用的作用域是和应用的数据模型相关联的,同时作用域也是表达式执行的上下文.$scope对象是定义应用业务逻辑.控制器方法和视图属性的地方. 作用域是应用状态的基础.基于动 ...

  10. java设计模式之抽象工厂模式

    上一篇文章(http://www.cnblogs.com/liaoweipeng/p/5768197.html)讲了简单工厂模式,但是简单工厂模式存在一定的问题,如果想要拓展程序,必须对工厂类进行修改 ...