点燃:仅使用核心进行消息传递?

时间:2017-05-16 19:37:34

标签: java rest messaging ignite

我想创建一个只使用ignite-core-2.0.0的小型(est)应用程序并执行Ignite消息传递。我想在某个地方与某个地方交换消息。

我已将IGNITE_HOME设置为./apache-ignite-2.0.0-src,我已经编译了源代码。文件IGNITE_HOME / config / default-config.xml存在且未更改。

以下是在异常

之前运行的代码
Ignition.setClientMode(true);
Ignite ignite = Ignition.start();
...

我正在

Exception in thread "main" class org.apache.ignite.IgniteException:
    Failed to create Ignite component (consider adding ignite-spring
    module to classpath)...

Caused by: java.lang.ClassNotFoundException:
    org.apache.ignite.internal.util.spring.IgniteSpringHelperImp‌​l

我没有在Ignite-core JAR中看到IgniteSpringHelperImp l class,并想知道为什么需要它。

如何使用ignite-core JAR进行消息传递?

1 个答案:

答案 0 :(得分:4)

这看起来像到目前为止。

IgniteConfiguration cfg = new IgniteConfiguration();
TcpDiscoverySpi spi = new TcpDiscoverySpi();
cfg.setDiscoverySpi(spi);
TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
ipFinder.setAddresses(Arrays.asList("127.0.0.1"));
spi.setIpFinder(ipFinder);
Ignite ignite = Ignition.start(cfg);
IgniteMessaging igMsg = ignite.message(ignite.cluster().forLocal());
igMsg.localListen("unorderedTopic", (nodeId, msg) -> {
    System.out.println("msg: " + msg + ", from: " + nodeId);
    return true; // to continue listening
});
for (int i = 0; i < 10; i++)
    igMsg.send("unorderedTopic", Integer.toString(i));

在我的机器上发送和接收消息。