1

我们目前在水平分布上使用 ActivePivot 4.3。

我们按历史天数拆分数据。即使加载速度很快,我们也不想让用户访问部分加载的节点。

我们希望在加载时在集群外部有一个节点,并在它准备好时加入它。此外,如果它正在维护中,我们可能希望将其排除在集群之外。为了实现这一点,我们需要对节点如何加入/离开集群进行一些控制。

我相信通过 JMX 可以进行一些控制,但是,我们希望以编程方式访问这些控件,最好是通过 Web 服务。

我们如何实施呢?

4

1 回答 1

1

使用 ActivePivot 4.3.3,您可以这样实现:

要防止节点在完全加载之前加入集群,您可以将“autoStart”分发属性设置为 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();

要使节点加入/离开集群,您可以自由地使用其信使的“pause()”和“resume()”方法。

于 2012-10-03T16:08:55.877 回答