4.2. EventBus 中的变化


以下部分描述了 EventBus 中的更改。

4.2.1. 删除了 EventBus 中的请求响应发送方法

EventBus.send (…​, Handler<AsyncResult<Message<T>>)Message.reply (…​, Handler<AsyncResult<Message<T>>) 方法已被删除。这些方法可能会导致 Eclipse Vert.x 4 中出现过载问题。该方法的版本返回 Future<Message<T > 将与触发和忘记版本冲突。

请求响应的消息传递模式应使用新的 请求和 replyAndRequest 方法。

  • 使用方法 EventBus.request (…​, Handler<AsyncResult<Message<T>>) 而不是 EventBus.send (…​, Handler<AsyncResult<Message<T>>) 来发送消息。
  • 使用方法 Message.replyAndRequest (…​, Handler<AsyncResult<Message<T>>) 而不是 Message.reply (…​, Handler<AsyncResult<Message<T>>) 来回复消息。

以下示例显示了请求并回复 Eclipse Vert.x 3.x 版本中的消息。

Request(请求)
eventBus.send("the-address", body, ar -> ...);
答复
eventBus.consumer("the-address", message -> {
       message.reply(body, ar -> ...);
});

以下示例显示了请求并回复 Eclipse Vert.x 4 中的消息。

Request(请求)
eventBus.request("the-address", body, ar -> ...);
答复
eventBus.consumer("the-address", message -> {
  message.replyAndRequest(body, ar -> ...);
});
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.