`

jboss datagrid7.0学习(8)jboss eap domain 模式学习

 
阅读更多

初学习Jboss Datagrid的时候,将一些概念搞混了,然后误打误撞了解了jboss eap domain模式。

 

jboss提供了二种运行模式:standalone(独立运行模式)、domain(域模式),日常开发中,使用standalone模式足已;但生产部署时,一个app,往往是部署在jboss集群环境中的,如果所有jboss server均采用standalone模式,会给运维带来极大的工作量,需要每台jboss server上逐一部署/更新,显然不适合。而domain模式就是为了解决这一问题。该模式下,所有jboss server可以划分成不同的group,每个group中可以包含多个jboss server,所有这些jboss server中可以指定一台做为域控制器(domain controller),俗称master server,其它jboss server均为slave server。

※这里的jboss server,均指某个运行中的jboss server instance



 一台物理机或者虚拟机称之为host controller,选取其中的一台机器作为domain controller,这样就可以管理其他的host controller,而host controller分别管理各自上的server instance。

 

为了理清这些概念,做如下测试

一.环境准备(操作系统是windows还是linux是没有影响的,这里因为只有一台windows机器,所以准备了一台可以与之通信的linux机器)



 
※这里操作系统的类型没有任何影响,只是恰巧而已。
 

二.什么也不做,启动服务,查看默认配置

1.启动服务
domain.bat

2.创建管理者(adminstrator-user)
add-user.bat

3.访问控制台
http://127.0.0.1:9990

通过这个URL,也不一定能访问到控制台,为了一定能访问到,最好将下面这一段,改成本机的真是Ip

 http://ip:9990        
host.xml         
………         
    <interfaces>         
        <interface name="management">         
            <inet-address value="${jboss.bind.address.management:10.0.210.135}"/>         
        </interface>         
        <interface name="public">         
            <inet-address value="${jboss.bind.address:10.0.210.135}"/>         
        </interface>         
    </interfaces>         
………

4.从控制台中可以看到有一些默认的内容。

 

为什么访问控制台,会有那么多默认信息,原因是如下设定产生的

1)domain.xml      
………      
<server-groups>      
        <server-group name="main-server-group" profile="full">      
            <jvm name="default">      
                <heap size="1000m" max-size="1000m"/>      
            </jvm>      
            <socket-binding-group ref="full-sockets"/>      
        </server-group>      
        <server-group name="other-server-group" profile="full-ha">      
            <jvm name="default">      
                <heap size="1000m" max-size="1000m"/>      
            </jvm>      
            <socket-binding-group ref="full-ha-sockets"/>      
        </server-group>      
    </server-groups>      
………      

2)host.xml

<host name="master" xmlns="urn:jboss:domain:4.1">

………
<servers>
        <server name="server-one" group="main-server-group">
        </server>
        <server name="server-two" group="main-server-group" auto-start="true">
            <socket-bindings port-offset="150"/>
        </server>
        <server name="server-three" group="other-server-group" auto-start="false">
            <socket-bindings port-offset="250"/>
        </server>
    </servers>
………
</host>

※定义port -offset的时候一定不能定义重复的偏移量,它是相对于8080偏移的。

 

5.根据上面的默认配置,测试

server-one
http://10.0.210.135:8080
server-two
http://10.0.210.135:8230/



 

6.看完默认配置,试着在master group里创建一台server

 这一步完成之后,host.xml里的servers节点下会自动多出来如下配置。 
 
<server name="server-test1" group="main-server-group" auto-start="true"> 
            <socket-bindings socket-binding-group="full-sockets" port-offset="1"/> 
        </server> 
这样完成之后,windows里就多出来了一个server-test1,并且访问下面的URL可以正常显示 
http://10.0.210.135:8081/

 

7.如何去管理别的一台机器上的服务,比如在slave中一般这样定义:

<domain-controller> 
        <!-- Alternative remote domain controller configuration with a host and port --> 
        <remote protocol="remote" host="${jboss.domain.master.address:10.0.210.135}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/> 
    </domain-controller> 
第3行,指定master server的IP(本文中为10.0.210.135),这样slave在启动时,才知道去连哪一台master 。

 

而master Server中这一段,他是这样定义的:

<domain-controller> 
        <local/> 
    </domain-controller>

 

8.其他注意事项

<management-interfaces>  
            <native-interface security-realm="ManagementRealm">  
                <socket interface="management" port="${jboss.management.native.port:9099}"/>  
            </native-interface>  
            <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true">  
                <socket interface="management" port="${jboss.management.http.port:9001}"/>  
            </http-interface>  
        </management-interfaces>  
这里的9999端口,改成其它不使用的端口(比如:9099),否则slave server上的9999端口,与master server上的管理端口冲突,最后启动时,会报错

 

<interfaces>      
        <interface name="management">      
            <inet-address value="${jboss.bind.address.management:192.168.100.25}"/>      
        </interface>      
        <interface name="public">      
            <inet-address value="${jboss.bind.address:192.168.100.25}"/>      
        </interface>      
    </interfaces>         
原来的127.0.0.1,改成slave server的真实IP或0.0.0.0,否则slave上的应用,只能在slave本机访问

 

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

 

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

 

回到slave192这台server中,再次编辑host.xml

 

<security-realm name="ManagementRealm">  
                <authentication>  
                    <local default-user="$local" skip-group-loading="true"/>  
                    <properties path="mgmt-users.properties" relative-to="jboss.domain.config.dir"/>  
                </authentication>  
                <authorization map-groups-to-roles="false">  
                    <properties path="mgmt-groups.properties" relative-to="jboss.domain.config.dir"/>  
                </authorization>  
                <server-identities>  
                <!-- Replace this with either a base64 password of your own, or use a vault with a vault expression -->  
                <secret value="MXEydzNlNHIhQA=="/>  
    </server-identities>  
</security-realm>

 

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

 

9.最后,启动Linux里的jboss,这样就可以在上面的控制台里看到slave192这个host

 

 

这里除了通过控制台,管理各个服务,还可以通过cli去控制。

启动jboss-cli.bat

执行命令(native-interface)

connect 10.0.210.135:9999

 

执行对服务器管理的各种命令,

ls /host=master/server-config=server-test1
ls /host=slave192/server-config=server-slave1

。。。。。

 

备注

 有人可能会有疑问,通过Master去管理slave,那原来slave自己的一些管理画面还可以访问吗?答案是否定的。

connect 192.168.100.25:9099

The controller is not available at 192.168.100.25:9099: java.net.ConnectException: WFLYPRT0053: http-remoting://192.168.100.25:9099连接不成功,连接失败。
: WFLYPRT0053: http-remoting://192.168.100.25:9099 连接不成功,连接失败: XNIO000812: Connection closed unexpectedly

 

访问控制页面:
http://192.168.100.25:9001
You may not access the admin console on this node, all access must come via the master host controller.

 

参考:http://www.cnblogs.com/yjmyzz/p/jboss-eap-mod-cluster.html

http://www.cnblogs.com/yjmyzz/p/4754976.html

  • 大小: 62.8 KB
  • 大小: 3.6 KB
  • 大小: 3.5 KB
  • 大小: 39.7 KB
  • 大小: 60.7 KB
  • 大小: 67.4 KB
  • 大小: 67.4 KB
  • 大小: 62.5 KB
  • 大小: 25.5 KB
分享到:
评论

相关推荐

    JBoss_Enterprise_Application_Platform-7.0

    8. **集群与高可用性**:JBoss EAP 7.0支持集群部署,可以实现负载均衡和故障转移,从而提高服务的可用性和可靠性。 9. **监控和诊断**:通过Hawt.io,EAP 7.0提供了一个直观的Web界面,用于监控服务器状态、管理...

    jboss-eap-7.2.6-patch

    【JBoss EAP 7.2.6 补丁包详解】 JBoss Enterprise Application Platform (EAP) 是 Red Hat 提供的一款开源中间件,用于构建、部署和管理企业级 Java 应用程序。JBoss EAP 7.2.6 版本是一个重要的更新,包含了多个...

    Eclipse中如何集成JBOSS7.0版本

    ### Eclipse中集成JBOSS 7.0版本的详细步骤及常见问题解决 #### 引言 随着JBOSS 7.0版本的发布,许多开发者开始尝试在Eclipse环境中集成这一新版本。然而,由于该版本较为新颖,可能会遇到一些在早期版本中未曾出现...

    linux-jboss-eap 集群搭建

    JBoss EAP 6.4.0提供了两种运行模式:standalone(独立运行模式)和domain(域模式)。standalone模式适用于日常开发,而domain模式更适合生产环境,因为它简化了多服务器集群的管理。 在域模式下,所有的JBoss EAP...

    jboss7正式版

    JBoss EAP 7.0,全称是Red Hat JBoss Enterprise Application Platform 7.0,是Red Hat公司推出的一款企业级Java应用服务器,基于Java EE 7规范。这款产品以其稳定性和强大的功能在IT行业中获得了广泛的认可。下面将...

    jboss-eap-7.2.0.zip

    【JBoss EAP 7.2.0:企业级应用平台详解】 JBoss EAP(Enterprise Application Platform)是Red Hat公司推出的一款开源、基于Java EE(现在称为Jakarta EE)的应用服务器,它为企业级应用程序提供了稳定、安全和可...

    jboss7.0源码及依赖包

    这个压缩包“jbos7.0”包含了JBoss 7.0版本的源代码及其依赖包,对于那些想要深入理解其内部工作原理或者进行二次开发的人来说,是一个宝贵的资源。 JBoss 7.0是JBoss AS(Application Server)的一个重大升级,...

    jboss-eap-5.2.0.zip

    **JBoss EAP 5.2.0:企业级应用平台的基石** JBoss EAP(Enterprise Application Platform),是Red Hat公司开发的一款基于Java EE(现在称为Jakarta EE)的应用服务器,它为开发者提供了一个全面的框架来构建、...

    jboss-eap-7.1.0

    JBoss EAP 7.1.0 是一个企业级的应用服务器,由Red Hat开发并维护,它是Java EE(现在称为Jakarta EE)平台的一个实现。这个版本提供了多种服务和功能,用于构建、部署和管理企业级Java应用程序。下面将详细讨论...

    jboss eap 6.2或as 7 以上乱码问题解决

    ### jBoss EAP 6.2 或 AS 7 以上乱码问题解决 #### 背景介绍 在使用jBoss Enterprise Application Platform (EAP) 6.2 或 jBoss Application Server (AS) 7及以上版本的过程中,可能会遇到字符编码问题,即所谓的...

    jboss-eap-6.4.0.zip

    JBoss EAP 6.4 是 Red Hat 提供的一个企业级应用服务器,它基于 Java EE 6 规范,提供了全面的中间件服务,用于构建、部署和管理企业级应用程序。这个版本是 JBoss 产品线的一个关键里程碑,因为它包含了众多功能...

    Jboss-EAP-6.4配置web工程,修改根目录,修改内存,修改端口

    JBoss EAP 6.4 是一款广泛应用的企业级应用服务器,尤其适合部署Web应用程序。本文主要介绍了如何配置和管理JBoss EAP 6.4,包括安装和部署FineReport、修改服务器端口、调整内存设置以及改变Web工程的根目录。 ...

    linux 下 配置JBoss6.0+JDK7.0

    在Linux环境下配置JBoss6.0与JDK7.0是一项关键的任务,因为这两个组件是许多企业级Java应用的基础。JBoss是一个流行的开源应用服务器,它支持Java EE规范,而JDK则是运行Java应用程序和应用服务器所必需的开发工具包...

    myeclipse 远程调试jboss as7或者jboss eap6

    总的来说,远程调试JBoss AS7或EAP6涉及的主要步骤包括:配置服务器启动参数以开启调试模式,设置MyEclipse的远程调试配置,以及确保服务器状态正常。通过熟练掌握这一技能,开发者可以更高效地定位和解决问题,提升...

    jboss-eap-6.3.0

    JBoss EAP 6.3.0 是一个企业级的应用服务器,由Red Hat公司开发,是Java EE 6规范的实现。它提供了丰富的功能和工具,用于构建、部署和管理基于Java的应用程序。以下是关于JBoss EAP 6.3.0的一些关键知识点: 1. **...

    Jboss eap 6.1.0 应用平台配置管理文档

    在该文档中,读者可以学习到如何管理和配置JBoss EAP 6.1来满足企业应用需求。 ### 知识点二:配置管理指南 文档提供了JBoss EAP 6.1的配置和管理指南,这是对JBoss EAP 6.1进行部署和日常管理操作的重要参考。这些...

    Linux JBoss EAP集群

    JBoss EAP 支持两种主要的运行模式:standalone 模式和 domain 模式。 - **Standalone 模式**:适用于小型系统或单个实例的部署场景。在这种模式下,每个实例都是独立运行的,互不影响。 - **Domain 模式**:适合于...

    jboss-eap-6.2.0

    8. **与OpenShift的整合**:Red Hat的PaaS平台OpenShift与JBoss EAP 6.2.0无缝集成,为云端应用部署提供了便利。 9. **社区支持与企业服务**:作为开源项目,JBoss EAP 6.2.0拥有庞大的开发者社区,可以获取到丰富...

    docker-jboss-eap:JBoss EAP 的 Docker 镜像

    JBoss EAP 的 Docker 镜像 此 docker 映像位于 jboss-base 映像(提供 java 安装 + jboss 用户)之上。 您可以在找到它们

Global site tag (gtag.js) - Google Analytics