似乎Ignite(2.0)Messaging的发送功能在同步模式下工作,它将被阻止为监听器。以下是我的测试代码。
ignite.message().localListen("TEST", (nodeId, Msg) -> {
try {
Thread.sleep(500);
} catch (Exception ex) {
}
return true;
});
for (int i = 0; i < 100; i++) {
ignite.message().send("TEST", "Hello World");
}
发送100条消息大约需要50秒,它几乎等于500毫秒* 100的休眠时间。似乎同步模式下的发送功能不处于异步模式。
有人知道如何在异步模式下更改发送功能吗?
提前致谢。
答案 0 :(得分:0)
在添加新API时似乎错过了异步侦听器调用,但您仍有两个选项:
withAsync()
,除非添加sendAsync()
。我刚刚为IGNITE-5570
打开了一张票答案 1 :(得分:0)
您似乎在一个节点内进行了测试。在这种情况下,没有发送消息,并且同步调用侦听器。网络通信在Ignite中是异步的,因此如果您在两个节点上进行测试,则不应该看到这种行为。