使用 Vertx "IAsyncResult" 和 "EventBus consumer" 的区别

the difference between using Vertx "IAsyncResult" and "EventBus consumer"

谁能给我解释一下这两种方法有什么区别:

vertx.evenbus().consumer("test", message -> {
  ..........
});
vertx.evenbus().send("test", res->{
...........
});

和:

public void test(Handler<AsyncResult<JsonObject>> resultHandler){
..........
}

test(res->{
..........
})

在 vert.x 中,事件总线允许您快速构建分布式应用程序,而无需知道其他服务的位置 运行,还允许您通过添加更多的 Verticles 侦听来扩展在一个共同地址上。

当您使用第一段代码时,您实际上是在要求 vert.x 在集群的任何位置找到一个可以处理特定类型消息的节点(可能与调用者相同) "test".

如果您更喜欢本地操作,例如在从文件中读取 JSON 对象后要执行的操作,则在第二个代码段中定义处理程序或回调。