2011-10-05 99 views
2

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

回答

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接口(包括管理控制台)到相对inteface“管理”。接口声明依次将其解析为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"/> 

因此,在总结...主机的每个实例都有一个唯一的名字,知道在哪里可以挖掘的肩膀头町,并揭露它是什么接口。作为回报,首席执行官本身公开了一个管理界面,在那里它监听实例以推送(包括他们的名字,他们的界面和服务器组)。

相关问题