Vertx的EventBus的send和publish方法之间有什么区别?

时间:2019-06-22 11:45:39

标签: vert.x vertx-eventbus

我第一次接触Vertx的EventBus,我意识到有两种提交消息的方法。使用了send或publish方法。我想问:使用这两种方法之间的实际区别是什么?在什么情况下使用每种方法?

1 个答案:

答案 0 :(得分:5)

sendpublish均用于将消息发送到事件总线地址。但是两者之间有一些区别。

通过使用publish

  • 邮件发送给一个或多个听众
  • 将通知所有监听该地址的处理程序
  • 处理程序没有答案

通过使用send

  • 将一条消息发送给一个,并且只有一个针对事件总线地址注册的处理程序。
  • 如果注册了多个处理程序,则只会通知一个。接收者将根据文档通过“循环算法”进行选择。
  • 接收方可以回答该消息,此回答可以为空或包含响应正文。还可以指定响应超时。

在实际使用中,publish对于通知事件已发生非常有用,而send在询问响应在哪里很重要时非常方便。

从概念上讲,publish使用发布/订阅模式,而send使用请求/响应模式。