Аккалар не видит друг друга

В Akka я добавляю две разные машины в кластер. Но есть некоторые проблемы. Если 2 машины встают одновременно, 2 стороны уходят как лидер и не видят друг друга. Или из-за схожих проблем они не видят друг друга. Вы знаете, есть ли у него решение?

0 ответов

Зависит от того, как вы настроили кластер, например: 1) жестко закодировано в списке начальных узлов в вашем application.conf: должно работать напрямую, если обе машины могут связаться друг с другом 2) механизм обнаружения с помощью config, dns, tag (aws) (предоставляется lightbend): пример для конфигурации:

akka.management {
  contact-point-discovery {
    required-contact-point-nr = 2
    service-name = "MyApp"
    discovery-method = akka.discovery
  }
}

и запись

akka.discovery {
  method = config
    config {
      class = "akka.discovery.config.ConfigSimpleServiceDiscovery"

      # Location of the services
      services-path = "akka.discovery.config.services"
      # hosts
      services {
        MyApp { //name should match the name set in akka-management.conf for service-name (https://developer.lightbend.com/docs/akka-management/current/bootstrap/local-config.html)
          endpoints = [
            {
              host = "127.0.0.1"
            },
            {
              host = "127.0.0.2"
            }
        ]
      }
    }
  }
}

где хосты будут теми, которые соответствуют вашим машинам. Обратите внимание, что для этого требуется "com.lightbend.akka.discovery" %% "akka-discovery-config" определенной версии в вашем файле сборки. При обнаружении также необходимо вызывать AkkaManagement(actorSystem).start() и ClusterBootStrap(actorSystem).start() при запуске каждого узла.

Так что действительно зависит от вашей конфигурации.

Другие вопросы по тегам