以下是我的两个Verticle的开始方法:
First 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);
});
}
这两个Verticle位于不同的机器上,但它们并没有“看到”彼此,虽然有聚集模式....有什么问题......我错过了什么?
答案 0 :(得分:0)
我找到了解决方案:
我有两台机器,每台都有四个网卡 - 而vertx似乎选择了错误的机器。所以我被迫设置了vertx应该使用的Ip-adress。结果看起来像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());
});