Аккалар не видит друг друга
В 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() при запуске каждого узла.
Так что действительно зависит от вашей конфигурации.