我在两个项目中有两个单独的顶点,它们被打包为常规jar。顶点类型是标准的。第一个verticle通过eventbus.send方法在其余端点上发送消息。另一个顶点通过eventbus.consumer方法接收该消息(实际上应该接收但失败)。
我通过maven shade plugin创建了jar,并使用-cluster参数运行。这两个项目都具有hazelcast依赖性,我在控制台日志中看到hazelcast群集已建立
当这些顶点在同一个jar中时,接收者的顶点正在接收消息。
发件人
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添加到两个应用程序时,问题就解决了。