Как заставить akka-tree работать с кластером akka.net?

В настоящее время я ищу визуализатор для akka.net (версия .NET). Я не нашел ничего, поэтому мне интересно, есть ли способ заставить akka-tree (масштаб) и кластер akka.net работать вместе. Я думаю, если оба фреймворка следуют одной и той же спецификации, тогда это должно работать. это?

Я пытался задать этот вопрос в akka-tree, но не получил ответа, поэтому попытаю счастья здесь.

https://github.com/nraychaudhuri/akka-tree/issues/15

Я не знаком с масштабом, но я сделал следующие изменения.

Я попытался добавить конфигурацию UDP в свой пример akka.net, потому что я думаю, что этот визуализатор использует UDP.

        helios.udp {
              port = 9003 # needs to be on a different port or IP than TCP
              hostname = localhost
          }

А потом я попытался изменить IP-адрес в этом файле akka-tree\visualizer\app\controllers\Application.scala

            val group = InetAddress.getByName("127.0.0.1"); 

Но не работает. Любая идея, как заставить это работать? Спасибо!

Обновление:

Я пытался использовать TCP, но не работает.

Я получаю исключение ниже, когда я захожу на веб-страницу «localhost: 90000». Я не знаком с Scale, но думаю, что это как-то связано с установкой весов. Я установил масштаб и java на свою машину, хотя ..

[info] Компиляция 1 исходного кода Scala в D:\git\akka-tree\visualizer\target\scala-2.11\classes... [info] play - Приложение запущено (Dev) [ошибка] application -

! Внутренняя ошибка сервера, для (GET) [/] ->

java.lang.ExceptionInInitializerError: null в Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.appl y(routes_routing.scala:72) ~[na:na] в Routes$$anonfun$routes $1$$anonfun$applyOrElse$1$$anonfun$apply$1.appl y(routes_routing.scala:72) ~[na:na] at play.core.Router$HandlerInvokerFactory$$anon$13$$anon$14.call(Router. scala:217) ~[play_2.11-2.3.7.jar:2.3.7] в play.core.Router$Routes$TaggingInvoker.call(Router.scala:464) ~[play_ 2.11-2.3.7.jar: 2.3.7] at Routes$$anonfun$routes$1$$anonfun$applyOrElse$1.apply(routes_routing. scala:72) ~[na:na] Причина: java.net.SocketException: не многоадресный адрес в java.net .MulticastSocket.joinGroup(Неизвестный источник) ~[na:1.8.0_51] at controllers.Application$.(Application.scala:16) ~[na:na] at controllers.Application$.(Application.scala) ~[na: na] в Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(routes_routi ng.scala:72) ~[na:na] at Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.appl y(routes_routing.scala:72) ~[na:na] [error ] application — Ошибка при отображении страницы ошибки по умолчанию scala.MatchError: java.lang.ExceptionInInitializerError (класса java.lang.Exce ptionInInitializerError) at play.api.GlobalSettings$class.onError(GlobalSettings.scala:148) ~[pla y_2. 11-2.3.7.jar:2.3.7] на play.api.DefaultGlobal$.onError(GlobalSettings.scala:206) [play_2.11- 2.3.7.jar:2.3.7] на play.core.server. Server$class.logExceptionAndGetResult$1(Server.scala:63) [play_2.11-2.3.7.jar:2.3.7] в play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.scala:7 3) [play_2.11-2.3.7.jar:2.3.7] на play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.scala:7 1) [play_2.11-2.3.7. jar:2.3.7] [ошибка] приложение -

! Внутренняя ошибка сервера, для (HEAD) [/] ->

java.lang.NoClassDefFoundError: Не удалось инициализировать контроллеры класса. Приложение$ в Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(routes_routing.scala:72) ~[na:na ] at Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(routes_routing.scala:72) ~[na:na] at play.core.Router$HandlerInvokerFactory$$anon$13$ $anon$14.call(Router.scala:217) ~[play_2.11-2.3.7.jar:2.3.7] в play.core.Router$Routes$TaggingInvoker.call(Router.scala:464) ~[play_ 2.11-2.3.7.jar:2.3.7] at Routes$$anonfun$routes$1$$anonfun$applyOrElse$1.apply(routes_routing. scala:72) ~[na:na] [error] application — Ошибка при отображении по умолчанию страница ошибки scala.MatchError: java.lang.NoClassDefFoundError: Не удалось инициализировать класс con trollers.Application$ (класса java.lang.NoClassDefFoundError) в play.api.GlobalSettings$class.onError(GlobalSettings.scala:148) ~[pla y_2.11-2.3.7.jar:2.3.7] в play.api.DefaultGlobal$.onError(GlobalSettings.scala:206) [play_2.11- 2.3.7.jar:2.3.7] в play.core.server.Server$class.logExceptionAndGetResult$1(Server.scala:63) [play_2.11-2.3.7.jar:2.3.7] на play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.scala:7 3) [play_2.11-2.3.7.jar: 2.3.7] на play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.scala:7 1) [play_2.11-2.3.7.jar:2.3.7]


person Michael Sync    schedule 27.08.2015    source источник
comment
Вы уверены, что это не проблема транспортного уровня? В настоящее время UDP является транспортным средством второго сорта, поэтому, возможно, когда вы решите использовать вместо него TCP, это может решить вашу проблему?   -  person Bartosz Sypytkowski    schedule 30.08.2015
comment
@Horusiath Спасибо! Я пробовал с TCP, но получил ту же ошибку. Я обновил свой пост с подробностями об ошибке. Любая идея об этой ошибке? Спасибо еще раз!   -  person Michael Sync    schedule 31.08.2015


Ответы (2)


Проблема в том, что вы пытаетесь охватить свой кластер как реализациями .NET, так и JVM akka. На данный момент они не совместимы друг с другом. Причиной этого являются некоторые различия в транспортном уровне сокетов .NET/JVM (например, порядок байтов с прямым и обратным порядком байтов), а также проблемы с сериализацией сообщений (JVM использует встроенный JavaSerializer, .NET использует JSON.NET по умолчанию).

Вероятно, есть и другие мелкие проблемы, но вывод таков, что на данный момент вы не можете объединить кластер akka между узлами .NET и JVM.

person Bartosz Sypytkowski    schedule 31.08.2015
comment
вижу Спасибо за ответ. Есть ли визуализатор для akka.net? Если нет ничего, можно ли дать мне несколько советов, как начать делать самостоятельно? Я новичок в akka.net, но я думаю, что должен иметь возможность подписаться на поток событий (или что-то в этом роде) системы или кластера актеров, чтобы я мог получать события и сообщения о создании актера... - person Michael Sync; 01.09.2015

Я не автор, но есть «очень альфа-версия» визуализатора, перенесенная на .NET (от августа 16 г.), доступная на nuget https://www.nuget.org/profiles/corneliutusnea с исходным кодом здесь https://github.com/corneliutusnea/Akka.Visualizer

person simonpetty    schedule 04.01.2017
comment
Спасибо, Саймон. Я посмотрю на это. - person Michael Sync; 06.01.2017