【问题标题】:Vertx discovers node but cannot see messageVertx 发现节点但看不到消息
【发布时间】:2015-10-09 09:59:42
【问题描述】:

当我启动一个新的clusteredVertx时,集群管理器找到了网络上的其他节点,但是分布式的eventBus却看不到测试地址上发布的消息。

例如,在启动一个新节点时:

VertxOptions options = new VertxOptions();

Vertx.clusteredVertx(options, res -> {
if (res.succeeded()) {
  Vertx vertx = res.result();
}

自动发现其他节点

Members [4] {
  Member [192.168.21.51]:5702
  Member [192.168.21.51]:5703
  Member [192.168.21.51]:5701
  Member [192.168.25.8]:5701 this
}

但是当 JsonObject 消息在通道“test”上发布时,如下所示:

eventBus eB1 = vertx.eventBus()
JsonObject j = new JsonObject();
j.put("test1", "test2");
eB1.publish("test", j);

它没有被另一个节点上的接收器接收。

EventBus eB2 = vertx.eventBus();
System.out.println("Receiver start");
MessageConsumer<JsonObject> testChannel = eB2.consumer("test");
testChannel.handler(message -> {
  System.out.println("Received: " + message.body().toString());
}

【问题讨论】:

    标签: vert.x


    【解决方案1】:

    here 的解决方案是将集群选项设置为本地节点。

    String ipAddress = Inet4Address.getLocalHost().getHostAddress();
    VertxOptions options = new VertxOptions();
    options.setClusterHost(ipAddress);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 2022-08-20
      • 2015-07-30
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      相关资源
      最近更新 更多