2

我在两个项目中有两个独立的 verticles,它们被打包为常规 jar。垂直类型是标准的。第一个 verticle 通过 eventbus.send 方法通过 rest 端点发送消息。另一个 verticle 通过 eventbus.consumer 方法接收该消息(实际上应该接受但失败)。

我通过 maven shade 插件创建了 jars,并使用 -cluster 参数运行。这两个项目都具有 hazelcast 依赖项,我在控制台日志中看到 hazelcast 集群

当 Verticle 在同一个 jar 中时,接收者 Verticle 正在接收消息。

发件人

EventBus eventBus = vertx.eventBus();
String message = routingContext.request().getParam("param");
eventBus.send("address", message, reply -> {
   if (reply.succeeded()) {
      System.out.println("Received reply: " + reply.result().body());
   } else {
      System.out.println("No reply");
   }
});

接收者

@Override
public void start() throws Exception {

    EventBus eventBus = vertx.eventBus();
    eventBus.consumer("address", message -> {
        System.out.println("Message: " + message.body());
        receivedMessage.reply("message received");
    });

    System.out.println("Receiver ready!");
}

有什么问题,有什么想法吗?

编辑

当我将 cluster.xml 添加到两个应用程序时,问题就解决了。

4

0 回答 0