2

我试图设置 JBoss AS7 中新增的域控制器功能。当服务器和主机控制器从 JBoss 的同一个文件夹运行时,域控制器在运行 domain.bat 时启动。但是如果我有一些服务器需要在其他物理机上运行,​​那么域控制器将如何当域控制器启动时启动这些服务器。由于 host.xml 知道控制器的地址,但域不知道不同机器中的不同主机控制器。是不是意味着不同机器中的主机控制器需要在域控制器之前启动?如果是怎么办?

4

1 回答 1

3

该过程是一个有趣的过程,JBoss 社区通过以下链接很好地记录了该过程。

https://docs.jboss.org/author/display/AS7/Admin+Guide#AdminGuide-ManagedDomain

https://docs.jboss.org/author/display/AS7/Domain+Setup

总之,当您启动域脚本时,主机控制器将变为活动状态。这个控制器的作用是简单地管理归属于它的服务器实例。其中一台主机将被配置为充当域控制器,这由host.xml文件中的一个简单元素指示。

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

在同一个文件下是作为域控制器的主机需要配置的两个部分,正如您可以想象的那样,它们是其他主机与之通信的接口和端口。

<management-interfaces>
   <native-interface interface="management" port="9999" />
   <http-interface interface="management" port="9990" />
</management-interfaces>

<interfaces>
   <interface name="management">
       <inet-address value="192.168.0.12"/>
   </interface>
</interfaces>

这已经设置了域控制器,因此将本机接口(它需要通信)和 http 接口(包括管理控制台)的端口声明解析为相关接口“管理”。接口声明又将其解析为 IP 地址192.168.0.12。域控制器的工作将是管理其他主机控制器。但他们需要知道如何解决自己。

为此,我们需要做一些事情。我们需要一个主机控制器的名称来调用自己以区别于其他控制器,并且我们需要向域控制器公开一个接口,以及知道域控制器向自己公开的接口。这些仍然在host.xml每个安装的相应文件中完成(如果您精通的话,您可以在 CLI 中编写脚本)。

这是唯一的名称:

<host xmlns="urn:jboss:domain:1.0"
     name="staging">
[...]
</host>

这是从属主机将端口声明为相对名称,以及该相对名称解析为:

<management-interfaces>
   <native-interface interface="management" port="9999" />
</management-interfaces>


<interfaces>
   <interface name="management">
       <inet-address value="192.168.0.101"/>
   </interface>
</interfaces>

这就是我们告诉主机控制器在哪里找到域控制器的地方。这样它就可以自己注册,这应该可以回答您关于域控制器如何“知道”哪些主机可用的问题。

<domain-controller>
   <remote host="192.168.0.12" port="9999"/>

所以总而言之......主机的每个实例都有一个唯一的名称,知道在哪里敲击肩膀上的头部,以及向它公开什么接口。作为回报,head honcho 公开了一个管理接口本身,它在其中侦听要推送的实例(包括它们的名称、它们的接口和服务器组)。

于 2011-11-17T08:18:51.030 回答