Мне нужно определить, был ли отправитель сообщения одним из локальных или удаленных участников кластера Akka. В настоящее время единственным способом, который я нашел для этого, являетсяПроверка наличия локального или удаленного отправителя субъекта
def isLocal(sndr: ActorRef) = sndr.path.address.toString == context.system.toString
Что лучше?
Я использую Акку 2.3
Update: Чтобы объяснить, почему я хочу, чтобы это сделать, в случае, если есть способ, чтобы избежать проблемы полностью.
На каждом узле маршрутизатор управляет несколькими актерами для выполнения работы. Рабочие-актеры отправляют результаты обратно местному мастер-актеру и назначаются новые задания через ссылку отправителя. Мастер-актеры также периодически отправляют результаты ведущим актерам других узлов, гарантируя, что данные случайным образом «смешиваются» между мастерами на разных узлах. В случае данных, поступающих от удаленного участника, мастер-получатель не должен пытаться выделять новую работу. По сути, это реализация метода островов с перемешиванием.
Зачем вам нужно знать? Одним из ключевых аспектов Akka является прозрачность местоположения, я бы сделал шаг назад и спрошу себя, почему вы нарушаете это. – Ryan