Ошибка удаленного развертывания маршрутизатора кластера Akka.net
Попытка настроить пул кластерного маршрутизатора и локальный субъект запускаются нормально, но я получаю исключение, когда первая удаленная система присоединяется к кластеру.
Это 1 против решения с 3 проектами - начальные, вторичные и общие сообщения / классы.
[ERROR][12/25/2018 2:30:10 AM][Thread 0004][akka://test/user/RRPool] Error while creating
actor instance of type Akka.Actor.ActorBase with 0 args: ()
Cause: [akka.tcp://test@spectre:49824/remote/akka.tcp/test@spectre:8080/user/RRPool/c2#1149667581]:
Akka.Actor.ActorInitializationException: > Exception during creation --->
System.TypeLoadException: Error while creating actor instance of type
Akka.Actor.ActorBase with 0 args: () --->
System.InvalidOperationException: No actor producer specified!
at Akka.Actor.Props.DefaultProducer.Produce()
at Akka.Actor.Props.NewActor()
Я пробовал:
- переместить актера в общий проект
- добавить actor.deployment в удаленную систему
Но пока безуспешно.
Запуск роутера и тестирование
var router = sys.ActorOf(Props.Create<sharedProj.PoolRouter>()
.WithRouter(FromConfig.Instance), "RRPool");
router.Tell("Main Service telling me something");
Я поместил свой конфиг в код с переменными для тестирования / изучения ради. Единственная разница между конфигурацией начального узла и вторичным узлом - это порт 0.
"akka {
actor.provider = cluster
loglevel = """ + logInfo + @"""
remote {
dot-netty.tcp {
port = " + myPort + @"
hostname = " + name + @"
public-hostname = " + name + @"
}
}
actor.deployment {
/RRPool {
router = round-robin-pool # routing strategy
nr-of-instances = 10 # max number of total routees
cluster {
enabled = on
allow-local-routees = on
max-nr-of-instances-per-node = 1
}
}
}
cluster {
seed-nodes = [""" + seed + @"""]
}
extensions = [""Akka.Cluster.Tools.PublishSubscribe.DistributedPubSubExtensionProvider,Akka.Cluster.Tools""]
}";