LINUX.ORG.RU

Вопрос по akka

 ,


0

1

Начал изучать Akka.
Не работает отправка сообщений удаленным системам.
Пример:

        ActorSystem s1 = ActorSystem.create("actorSystem1", ConfigFactory.parseString("akka.remote.netty.port=2552"));
        ActorSystem s2 = ActorSystem.create("actorSystem2", ConfigFactory.parseString("akka.remote.netty.port=2553"));

        ActorRef s1ref = s1.actorOf(new Props(GreetingActor.class), "greeting");
        ActorRef s2ref = s2.actorFor("akka://actorSystem1@127.0.0.1:2552/user/greeting");

        s1ref.tell(new Greeting("Hello, actorSystem1!"));
        s2ref.tell(new Greeting("Hello, from actorSystem2!"));
Первое сообщение приходит, второе - нет. Как правильно указать путь для actorFor()?
ЧЯДНТ?

★★★★★

Я правильно понимаю, что по умолчанию нельзя отправлять сообщения акторам другой системы? Перед этим в конфиге нужно настроить адреса для получения удаленных сообщений?

kovrik ★★★★★ ()

It works!

        ActorSystem s1 = ActorSystem.create("actorSystem1", ConfigFactory.parseString("akka.remote.netty.port=2552").withFallback(ConfigFactory.parseFile(new File("application.conf"))));
        ActorSystem s2 = ActorSystem.create("actorSystem2", ConfigFactory.parseString("akka.remote.netty.port=2553").withFallback(ConfigFactory.parseFile(new File("application.conf"))));

        ActorRef s1ref = s1.actorOf(new Props(GreetingActor.class), "greeting");
        ActorRef s2ref = s2.actorFor("akka://actorSystem1@127.0.0.1:2552/user/greeting");

        s1ref.tell(new Greeting("Hello, actorSystem1!"));
        s2ref.tell(new Greeting("Hello, actorSystem2!"), null);

kovrik ★★★★★ ()
Ответ на: комментарий от Rastafarra

Я был бы только за! К сожалению, остальные члены команды более консервативны.

kovrik ★★★★★ ()
Ответ на: комментарий от kovrik

ну ты хоть покажи им как это должно выглядеть, на нормальном языке-то.

Rastafarra ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.