Ich versuche, Nachrichten im gruppierten vert.x an andere Hosts zu senden. Das Ausführen des folgenden Codes zweimal auf einem Computer funktioniert, aber wenn ich zwei Hosts verwende, schlägt es fehl (Nachricht wird nicht empfangen). Ich benutze Vert.x 3.3.1 mit Hazelcast. Ich habe das Protokoll der Slave-Seite angehängt, das auf einem separaten Host läuft, wo es so aussieht, als würden sie sich finden und verbinden.Senden von Vert.x-Nachrichten über das Netzwerk nicht möglich
Ich bin dankbar für jede Eingabe!
Worker
public class WorkerVerticle extends AbstractVerticle {
@Override
public void start() throws Exception {
System.out.println("Deployed " + getClass().getName());
vertx.eventBus().<String> consumer("TEST_ADDRESS", this::doWork);
}
private void doWork(Message<String> msg) {
String workItemString = msg.body();
System.out.println("Got Work:" + workItemString);
}
}
Mainclass
public class Starter {
Vertx vertx;
public Starter(boolean slave) {
VertxOptions options = new VertxOptions();
options.setClustered(true);
Future<Void> completer1 = Future.future();
Vertx.clusteredVertx(options, res -> {
if (res.succeeded()) {
vertx = res.result();
completer1.complete();
System.out.println("Opened clustered vertx");
} else {
System.out.println("Failed: " + res.cause() + ". Quitting now.");
System.exit(-1);
}
});
completer1.setHandler(new Handler<AsyncResult<Void>>() {
@Override
public void handle(AsyncResult<Void> event) {
if (slave) {
System.out.println("Deploying worker");
vertx.deployVerticle(WorkerVerticle.class.getName());
} else {
System.out.println("publishing message");
vertx.eventBus().publish("TEST_ADDRESS", "Test");
}
}
});
}
}
Beispiel Protokoll der Slave auf separaten Host ausgeführt
INFORMATION: [192.168.2.191]:5701 [dev] [3.6.3] Accepting socket connection from /192.168.2.3:55878
Jul 21, 2016 10:20:43 AM com.hazelcast.nio.tcp.TcpIpConnectionManager
INFORMATION: [192.168.2.191]:5701 [dev] [3.6.3] Established socket connection between /192.168.2.191:5701 and /192.168.2.3:55878
Jul 21, 2016 10:20:44 AM com.hazelcast.cluster.ClusterService
INFORMATION: [192.168.2.191]:5701 [dev] [3.6.3]
Members [2] {
Member [192.168.2.191]:5701 this
Member [192.168.2.3]:5701
}
Führen Sie die vertx-Prozesse mit dem Schalter '-cluster' aus? –
Starten Sie das Programm wie folgt: 'java -jar vertxtest.jar -cluster' – timmiotooltim
Könnten Sie versuchen, Telnet-IP-Port von beiden Host auf den anderen auf Port 5701? Ich weiß, HZ berichtet, es ist verbunden, aber nur um sicher zu gehen ... –