Заставить создать местного актера в Акке на местном JVM - PullRequest
0 голосов
/ 11 июня 2018

Как заставить актера создать локальную JVM (не удаленную) в Akka?Это какой-то параметр, который вы можете передать функции создания или конфигурации, которую нужно установить?

Ответы [ 2 ]

0 голосов
/ 22 июня 2018

При проектировании AKKA ваше беспокойство не произойдет.

actorOf по умолчанию просто настроит актера на локальном узле actorsystem, он не будет пытаться настроить актера на удаленном узле, даже если вы находитесь вкластерный или удаленный режим.

Если вы хотите настроить актера в удаленной системе, вам придется явно сделать следующее:

application.conf

akka {
  actor {
    deployment {
      /sampleActor {
        remote = "akka.tcp://sampleActorSystem@10.192.225.100:2553"
      }
    }
  }
}

test.scala

val actor = system.actorOf(Props[SampleActor], "sampleActor")

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

В любом случае, вам не о чем беспокоитьсясуществует, если вы не выполняете специальную настройку в application.conf, подробности вы можете найти в akka guide

0 голосов
/ 12 июня 2018

Создайте метод Actor with props, как показано ниже

public class MyActor extends AbstractActor {

    @Override
    public Receive createReceive() {
        return ReceiveBuilder.create()
                .match(Order.class, this::handleMessage)
                .build();
    }

    static Props props() {
        return Props.create(MyActor.class);
    }

    private void handleMessage(String e)
    {
        //do something with the string
    }

}

Затем вы можете создать дочерний ActorRef, используя.

ActorRef childRef = actorSystem.actorOf(MyActor.props(), "myActor");

И отправляйте ему сообщения, как показано ниже.

childRef.tell(myMessage,self());
...