Vert.x - Core EventBus

Vert.x 大多是操作都是异步的,不同Verticle都通讯可以通过EventBus来进行。

EventBus

Vert.x的EventBus可以通过Vertx对象获取,EventBus通过send或publish发送消息,通过consumer消费消息:

public class EventBusStarter {

  public static void main(String[] args) {
    Vertx vertx = Vertx.vertx();
    vertx.eventBus().consumer("ping-pong", message -> {
      System.out.println("recv: " + message.body());
    });
    vertx.eventBus().send("ping-pong", "ping");
  }
}

send和publish的不同点在于,send只会发送给一个接收者,而publish则会通知所有接收者。

另外,EventBus通过相同的地址进行信息通讯,地址是字符串格式,如上面代码中的ping-pong

EventBus的消息体可以是多种类型:

  • String
  • Json
  • Buffer

以上这些类型都是可以的。

在 Verticle 中注册了 Event Bus 的处理器,那么这些处理器在 Verticle 被撤销的时候会自动被注销。


彩蛋:关注公众号、或小程序,阅读更多IT文章。

posted @ 2022-01-23 15:55  HiIT青年  阅读(163)  评论(0编辑  收藏  举报