我第一次接触 Vertx 的 EventBus,我意识到有两种方法可以提交消息。使用了发送或发布方法。我问:使用这两种方法有什么实际区别,它们分别在什么场景下使用?
问问题
2050 次
1 回答
15
两者send
和publish
都用于向事件总线地址发送消息。但是,两者之间存在一些差异。
通过使用publish
:
- 一条消息被发送到一个或多个监听器
- 将通知所有监听地址的处理程序
- 预计处理程序不会回答
通过使用send
:
- 一条消息被发送到一个并且只有一个针对事件总线地址注册的处理程序。
- 如果注册了多个处理程序,则只会通知一个。根据文档,接收器将通过“循环算法”选择。
- 接收者可以回答消息,这个回答可以是空的,也可以包含一个响应体。还可以指定响应超时。
在实际使用中,publish
通知事件已经发生非常有用,而send
对于在响应重要的地方询问治疗非常方便。
从概念上讲,publish
使用发布/订阅模式,而send
使用请求/响应模式。
于 2019-06-22T18:04:30.220 回答