2011-10-05 23 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"/> 

因此,在總結...主機的每個實例都有一個唯一的名字,知道在哪裏可以挖掘的肩膀頭町,並揭露它是什麼接口。作爲回報,首席執行官本身公開了一個管理界面,在那裏它監聽實例以推送(包括他們的名字,他們的界面和服務器組)。

相關問題