2015-12-14 5 views
2

Мы пытались установить связь между вертикалями с использованием шины событий. Мы попробовали простейший пример связи пинг-понга -Невозможно связываться с использованием шины событий для вершин, запущенных на разных машинах

public class Sender extends AbstractVerticle { 
    public static void main(String[] args) { 
     Vertx.clusteredVertx(new VertxOptions(),res->{ 
      res.result().deployVerticle(new Sender()); 
     }); 
    } 
    @Override 
    public void start() throws Exception { 
     EventBus eb = vertx.eventBus(); 
     vertx.setPeriodic(1000, v -> { 
      eb.send("ping-address", "ping!", reply -> { 
       if (reply.succeeded()) { 
        System.out.println("Received reply: " + reply.result().body()); 
       } else { 
        System.out.println("No reply"); 
       } 
      }); 
     }); 
    } 
} 

Аналогичным образом мы написали письмо получателя. See the code.

Связь выполнена успешно, если и отправитель, и приемник работают на одной машине. Но когда они запускаются, разные машины обрываются. Кроме того, это не проблема с менеджером кластеров Hazelcast (который мы использовали), потому что hazelcast правильно обнаруживает другого однорангового узла на обеих машинах (это видно из консольных журналов каретки).

Members [2] { 
    Member [192.168.43.12]:5701 
    Member [192.168.43.84]:5701 this 
} 

Также брандмауэр не был включен на обеих машинах, и мы смогли установить связь между теми же машинами, используя только hazelcast (без использования VertX), и она работала отлично (например this). Так что, вероятно, проблема связана с vert-x.

ответ

0

Вы пытались установить setClustered (true) на VertxOptions? Я тестировал этот примерный код, и он отлично подходит для меня:

public static void main(String[] args) { 
    VertxOptions op = new VertxOptions(); 
    op.setClustered(true); 
    Vertx.clusteredVertx(op, e -> { 
     if (e.succeeded()) { 
      HelloWorldVerticle hwv = new HelloWorldVerticle(); 
      e.result().deployVerticle(hwv); 
     } else { 
      e.cause().printStackTrace(); 
     } 
    }); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^