设为首页 收藏本站
查看: 877|回复: 0

[经验分享] jboss eap 6.3 域(Domain)模式配置

[复制链接]

尚未签到

发表于 2017-2-19 10:27:41 | 显示全部楼层 |阅读模式
  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
DSC0000.jpg

  一、下载安装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


DSC0001.gif DSC0002.gif


1     <interfaces>
2         <interface name="management">
3             <inet-address value="${jboss.bind.address.management:172.21.129.181}"/>
4         </interface>
5         <interface name="public">
6            <inet-address value="${jboss.bind.address:172.21.129.181}"/>
7         </interface>
8         <interface name="unsecure">
9             <!-- Used for IIOP sockets in the standard configuration.
10                  To secure JacORB you need to setup SSL -->
11             <inet-address value="${jboss.bind.address.unsecure:172.21.129.181}"/>
12         </interface>
13     </interfaces>
View Code  将所有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
DSC0003.jpg

  tips: 创建group时,profile建议选择full-ha或ha (以后会讲如何做jboss集群配置,负载均衡、智能容错时,需要使用ha系列的profile)
  重要提示:同一个局域网里如果有多个master,如果这些master上的group名称有重复,则只有第一master能启动成功后,后面的master启动时会报错,建议每个master上的group命名时,加上master的IP,比如group+IP地址,这样肯定不会重复!
  参考下面的图,在master server上创建4个server
DSC0004.jpg

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

  解释一下,默认情况下server的端口是8080,Port Offset指端口偏移量,如果按上图配置,Port Offset指定为5,则表示该server创建后,对应的端口为8080+5,即8085端口 (可以用http://172.21.129.181:8085/ 来访问)
  tips: 如果一个server已经处于started状态,是无法remove的,可以先到下面的界面,把该server stop掉,然后再回这个界面,就可以Remove了
DSC0006.jpg

  三、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                 <socket interface="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         <interface name="management">
3             <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
4         </interface>
5         <interface name="public">
6            <inet-address value="${jboss.bind.address:0.0.0.0}"/>
7         </interface>
8         <interface name="unsecure">
9             <!-- Used for IIOP sockets in the standard configuration.
10                  To secure JacORB you 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 控制台中,建议起一个容易识别的名称
  四、安全认证配置
  4.1 回到master server上,添加一个名为slave57的管理员帐号,并记住最后生成的<secret value="xxxx" />的字符串(xxx为密码经过base64处理后的内容)
  4.2 回到slave57这台server中,再次编辑host.xml,将<secret value="xxxx" />的内容替换



1 <server-identities>
2                      <!-- Replace this with either a base64 password of your own, or use a vault with a vault expression -->
3                      <!--<secret value="c2xhdmVfdXNlcl9wYXNzd29yZA=="/>-->
4                      <secret value="c2xhdmU1Ny4xMjM=" />
5                 </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已经自动注册进来了
DSC0007.jpg

  另一台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-two avoids port conflicts by incrementing the ports in
5                  the default socket-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组。
DSC0008.jpg

DSC0009.jpg

  五、应用部署
DSC00010.jpg

  进入部署界面(如上图),点击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均可访问

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-344136-1-1.html 上篇帖子: spring下配置dbcp,c3p0,proxool[转] 下篇帖子: Java程序员面试题集(116-135)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表