0

我有一个两个节点的 Apache Ignite 集群,但是当我Ignition.ignite从 scala shell 或运行在任何机器上的 java 程序调用时,我得到:

org.apache.ignite.IgniteIllegalStateException: Grid instance was not properly started or was already stopped: null

我尝试将集群命名为default-config.xml

<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
    <property name="gridName" value="grid"/>
</bean>

但这没有用。节点已开始使用ignite.sh,可以看到它们启动正常。

Topology snapshot [ver=2, servers=2, clients=0, CPUs=8, heap=2.0GB]

唯一对我有用的是使用Ignition.start([default-config.xml])然后Ignition.ignite("grid")工作;但现在我的机器上运行了第二个实例:

Topology snapshot [ver=3, servers=3, clients=0, CPUs=8, heap=2.2GB]

是被Ignition.ignite窃听还是我需要做更多的事情才能让它工作?

我在用apache-ignite-fabric-1.4.0

4

2 回答 2

4

您的客户端应用程序还需要启动一个节点。它将加入拓扑并提供与集群的连接。您很可能不希望此节点存储任何数据或执行作业。如果是这种情况,请在客户端模式下启动它:

Ignition.setClientMode(true);

Ignite ignite = Ignition.start(..);

在此之后,您应该会看到此拓扑快照(请注意,仍然有 2 个服务器,但添加了 1 个客户端:

Topology snapshot [ver=3, servers=2, clients=1, CPUs=8, heap=2.2GB]

Ignition.ignite()方法可用于获取对已启动实例的引用。如果尚未开始,IllegalStateException则抛出。

于 2015-11-17T19:19:19.787 回答
0

我使用 ignite-core:1.4.0 并且我在启动 ignite 时没有问题

IgnitionEx.start(igniteConfigurationAdapter);

其中 igniteConfigurationAdapter 只是一个 IgniteConfiguration 实例,您可以在其中指定要创建的节点类型。

也许您没有在 IgniteConfiguration 实例中指定节点类型

于 2015-11-17T11:55:32.450 回答