2016-08-23 20 views
0

即时消息与我的两个垂直,我想在聚集模式下启动。顶点:为什么没有聚集的垂直顶点?

这里是我的两个verticles的启动方法:

首先Verticle:

public static void main(String[] args) { 
    VertxOptions options = new VertxOptions(); 

    options.setClustered(true); 
    options.setClusterManager(new HazelcastClusterManager()); 

    Vertx.clusteredVertx(options, res -> { 
     Vertx vertx = res.result(); 
     vertx.deployVerticle(new WalzenSchnittBlMock()); 

    }); 

} 

二Verticle:

public void start() { 
    VertxOptions options = new VertxOptions(); 

    Vertx.clusteredVertx(options, res -> { 
     vertx = res.result(); 
     vertx.deployVerticle(serviceVerticle, this::completeRegister); 
    }); 
} 

Thhis 2个verticles驻留在不同的机器,但他们做的不是“看到”彼此,虽然有集群模式....是否有任何问题..我错过了什么?

+1

您是否启用了Hezelcast日志记录?我会从那里开始:http://vertx.io/docs/vertx-hazelcast/java/#_enabling_logging –

+1

我同意启用日志记录。您也可能检查防火墙规则。两台机器都在同一个网络上吗? – dbh

回答

0

我找到了解决办法:

我有两台机器和他们每个人有四个networkcards - 和vertx似乎选错了一个。所以我被迫设置了vertex应该使用的IP地址。结果看起来像Ipadress是jar文件的参数:

VertxOptions options = new VertxOptions(); 

    Config config = new Config(); 
    NetworkConfig networkConfig = config.getNetworkConfig(); 

    networkConfig.getInterfaces().setEnabled(true).addInterface(args[0]); 
    options.setClusterManager(new HazelcastClusterManager(config)); 
    options.setClustered(true); 
    options.setClusterHost(args[0]); 

    Vertx.clusteredVertx(options, res -> { 
     Vertx vertx = res.result(); 
     vertx.deployVerticle(new Receiver()); 

    });