Связь с кластером | Как получить ActorPath, включая IP и порт

#scala #akka #akka-typed

#scala #akka #типизированный akka

Вопрос:

На той же JVM из примера кода Akka можем ли мы установить

 "replyTo" via context.self.

final case class Greet(whom: String, replyTo: ActorRef[Greeted])
  

Но чтобы иметь возможность обращаться к субъекту на другой виртуальной машине, должен ли я использовать ActorRef, например:
Actor[akka://shakto@172.31.19.110:25520/user/supervisor#1566727323]

Чтобы получить такой ActorRef, я безуспешно пытался следовать:

 context.self: Actor[akka://shakto/user/supervisor#-893416855] | -> Type: ActorRef -> no IP amp; Port
context.self.ref: Actor[akka://shakto/user/supervisor#-893416855] | -> Type: ActorRef -> no IP amp; Port
context.self.path: akka://shakto/user/supervisor | -> Wrong Type: ActorPath 
Cluster(context.system).selfMember.address: akka://shakto@172.31.17.16:25520 | -> Wrong Type: Address 
Cluster(context.system).selfMember: Member(address = akka://shakto@172.31.17.16:25520, status = Up) | -> Wrong Type: Member
Cluster(context.system).selfMember.uniqueAddress: UniqueAddress(akka://shakto@172.31.17.16:25520,7005817905428950198) | -> Wrong Type: UniqueAddress 
DistributedData(context.system).selfUniqueAddress: SelfUniqueAddress(UniqueAddress(akka://shakto@172.31.17.16:25520,7005817905428950198)) | -> Wrong Type: SelfUniqueAddress 
  

Как я могу получить полный ActorRef, включая IP и порт, изнутри субъекта, который я затем могу передать как «replyTo», чтобы позволить разным узлам на разных JVM использовать этот ActorRef для ответа мне внутри того же кластера?


Ответ №1:

Вы просматривали эту страницу? https://doc.akka.io/docs/akka/current/typed/actor-discovery.html

Рекомендуемый способ связи с удаленным субъектом — использование кластера akka и Администратора.

Используете ли вы akka-remote?

Комментарии:

1. Спасибо вам за ваш ответ. Да, я пользуюсь услугами администратора, но, снова прочитав документацию, обнаружил свою ошибку в другом месте. context.self работает в сочетании с Администратором.