2012-10-03 103 views
1

我們目前在水平分佈上使用ActivePivot 4.3。ActivePivot集羣管理水平分佈

我們根據歷史天數來分割我們的數據。即使加載速度很快,我們也不希望讓用戶訪問部分加載的節點。

我們希望在加載時在羣集外部有一個節點,並在準備好時加入它。如果正在維護中,我們也可能希望將其保留在羣集之外。爲了實現這一點,我們需要對節點如何加入/離開集羣進行一些控制。

我相信有一些控制槽JMX,但是,我們希望這些控件可以編程方式訪問,理想情況下通過web服務。

我們該如何實現?

回答

2

隨着ActivePivot 4.3.3,你可以這樣實現它:

爲了防止從節點加入羣集它完全加載後,您可以設置「自動」分配屬性設置爲false。

在你的Schema.xml文件,通過網絡添加以下代碼

... 
    <distributionDescription> 
     <distributedPivotId> xxxx </distributedPivotId> 
     <clusterId> xxxx </clusterId> 
     <distributionType> xxxx </distributionType> 
     <properties> 
      <entry key="autoStart" value="false" /> 
     </properties> 
    </distributionDescription> 
... 

然後,信使組件,負責溝通,將不會啓動。你必須手動完成。

要啓動此組件,您必須調用其「start()」方法。如果您不想使用JMX工具並以編程方式執行,則必須使用「ActivePivotManager」組件。它提供了獲取ActivePivot幾個實例的方法:使用它來獲得所需的分佈式ActivePivot。

最後,使用分佈式ActivePivot中的「​​getMessenger()」方法獲取信使組件,並啓動它。所考慮的節點隨後將加入羣集。

假設你有經理,你的代碼應該如下所示:

ADistributedActivePivot myDistributedPivot = (ADistributedActivePivot) manager.getActivePivots().get("myDistributedPivot"); // Change it to the Id of your distributed pivot 
myDistributedPivot.getMessenger().start(); 

要使節點加入/離開集羣,您可以自由使用「暫停()」和「恢復() 「從它的使者的方法。

+0

假設你沒有經理,你是如何得到它的? –