java - Ignite:仅使用核心来传递消息?

标签 java rest messaging ignite

我想制作一个仅使用 ignite-core-2.0.0 并执行 Ignite 消息传递的小型(est)应用程序。我想与之交换消息的某个集群。

我已将 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 类,并且想知道为什么需要它。

如何仅使用 ignite-core JAR 来实现消息传递?

最佳答案

到目前为止,这看起来可行。

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));

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

关于java - Ignite:仅使用核心来传递消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44010153/

相关文章:

java - 如何验证 Java 线程堆栈大小是固定的还是受限的?

Java SE 版本 <-> Java EE 版本兼容性矩阵

javascript - Chrome 扩展消息传递 API - 检测端口何时关闭

rest - 什么是在Logstash中提取Rest API的正确方法

asp.net-mvc - 在 AppHarbor 中托管多线程 mvc 应用程序

protocols - 如何通过基于云的系统强制通过 MQTT 传递到 IoT 设备的消息顺序(API 设计问题)

messaging - Lamport 的(物理)时钟同步算法

java - 从数组列表中选择多个/随机元素

java - 来自 JNI_CreateJavaVM (jvm.dll) 的异常 0xC0000005

python - 使用 spark REST API 运行 pyspark 脚本