OS Linux
JDK 1.7.0_67
Vert.x 2.1.5
刚刚开始连接github上的一些vertx示例.
由于手册想要尝试一个简单的Sender< - >接收器示例,通过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>(){
@Override
public void handle(Message 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,vert-x
来源: https://codeday.me/bug/20191008/1872511.html