Как привязать узел Hazelcast к определенному IP-адресу? - PullRequest
0 голосов
/ 15 апреля 2019

Я попытался запустить этот код, но он выдает ошибку. Кажется, я не могу привязаться к конкретному IP-адресу; скорее мне нужно привязать к сетевому интерфейсу. есть ли способ обойти эту проблему?

import io.vertx.core.VertxOptions
import io.vertx.reactivex.core.Vertx
import io.vertx.spi.cluster.hazelcast.{ ConfigUtil, HazelcastClusterManager }

object Test extends App {
  val host = "127.0.0.2"
  def getConfig(): Config = {
    import scala.collection.JavaConverters._
    val config = ConfigUtil.loadConfig()
    config.setProperty("hazelcast.socket.bind.any", "false")
    config
      .getNetworkConfig
      .setPortAutoIncrement(false)
      .getInterfaces
      .setEnabled(true)
      .setInterfaces(List(s"127.0.0.2").asJava)
    val joinConfig = config.getNetworkConfig.getJoin

    joinConfig
      .getMulticastConfig
      .setEnabled(false)

    config
  }
  def run(): Unit = {
    val mgr = new HazelcastClusterManager(getConfig())
    val options = new VertxOptions().setClusterManager(mgr)
    options.getEventBusOptions.setHost(host)
    val vrtx = Vertx.rxClusteredVertx(options).blockingGet()
  }
  run()
}

Я получаю java.lang.RuntimeException: Hazelcast CANNOT start on this node. No matching network interface found.

1 Ответ

0 голосов
/ 16 апреля 2019

Проверьте этот раздел документации и ссылку в документе: https://docs.hazelcast.org/docs/latest/manual/html-single/index.html#discovering-members-by-tcp

Вам нужно отключить Hazelcast для привязки всех интерфейсов, установив для hazelcast.socket.bind.any значение false.Затем вы можете использовать интерфейсы, как описано здесь: https://docs.hazelcast.org/docs/latest/manual/html-single/index.html#interfaces

...