gpt4 book ai didi

java - Vertx Eventbus 无法在 Java 中工作

转载 作者:行者123 更新时间:2023-12-03 01:38:39 29 4
gpt4 key购买 nike

操作系统LinuxJDK 1.7.0_67Vert.x 2.1.5

刚刚开始连接 github 上找到的一些 vertx 示例。

由于手册想要通过 EventBus 尝试一个简单的发送器 <-> 接收器示例。许多小时后,没有 ping,也没有 hello world。

任何人都有一个想法,我在这个简单的代码中缺少什么:

Sender.java

import org.vertx.java.platform.Verticle;

public class Sender extends Verticle {

public void start(){
vertx.eventBus().send("ping-address", "Hello");
}
}

Receiver.java

import org.vertx.java.core.Handler;
import org.vertx.java.core.eventbus.EventBus;
import org.vertx.java.core.eventbus.Message;
import org.vertx.java.platform.Verticle;

public class Receiver extends Verticle {

public void start() {
EventBus eb = vertx.eventBus();
eb.registerHandler("ping-address", new Handler<Message<String>>(){
@Override
public void handle(Message<String> message) {
container.logger().info("Message: "+message.body());
}
});

container.logger().info("PingVerticle started");

}
}

使用以下 CLI 命令在同一台计算机上的单独 JVM 实例中运行这两个实例:

vertx run Receiver.java
> Succeeded in deploying verticle

另一个控制台:

vertx run Sender.java
> Succeeded in deploying verticle

最佳答案

按照您运行顶点的方式,它们将无法看到彼此。它们本质上是作为完全独立的进程启动的,并且禁用了集群(默认)。您必须在集群模式下运行顶点,以便让它们相互定位并通信。使用 -cluster 选项启用 Hazelcast 集群。您可能还需要指定 -host-port

如果此后您仍然发现偶数总线通信存在问题,请启用 Hazelcast 日志记录并确保两个节点能够看到对方。如果您的网络不支持多播,您可能必须更改 cluster.xml(Hazelcast 配置)。

关于java - Vertx Eventbus 无法在 Java 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30983863/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com