使用Vertx“IAsyncResult”和“EventBus consumer”之间的区别

时间:2016-09-22 09:00:09

标签: java vert.x

请有人向我解释这种方法有什么区别:

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

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

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

1 个答案:

答案 0 :(得分:2)

在vert.x中,eventbus允许您快速构建分布式应用程序,而无需知道其他服务的运行位置,并且还允许您通过添加更多监听公共地址的Verticle进行扩展。

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

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