如何使 akka-tree 与 akka.net 集群一起工作?
How to make akka-tree work with akka.net cluster?
我目前正在寻找 akka.net(.NET 版本)的可视化工具。我发现 none 所以我想知道是否有任何方法可以使 akka-tree (scale) 和 akka.net 集群一起工作。我想如果两个框架都遵循相同的规范,那么它应该可以工作。是吗?
我试过在 akka-tree 中问这个问题但没有回应所以我在这里试试运气。
https://github.com/nraychaudhuri/akka-tree/issues/15
我不熟悉缩放,但我做了以下更改。
我尝试在我的 akka.net 示例中添加 UDP 配置,因为我认为这个可视化工具正在使用 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 不熟悉,但我认为它与 scale 安装有关。我确实在我的机器上安装了 scale 和 java ..
[info] Compiling 1 Scala source to
D:\git\akka-tree\visualizer\target\scala-2.11 \classes... [info] play
- Application started (Dev) [error] application -
! Internal server error, for (GET) [/] ->
java.lang.ExceptionInInitializerError: null
at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl
y(routes_routing.scala:72) ~[na:na]
at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl
y(routes_routing.scala:72) ~[na:na]
at play.core.Router$HandlerInvokerFactory$$anon$$anon.call(Router.
scala:217) ~[play_2.11-2.3.7.jar:2.3.7]
at play.core.Router$Routes$TaggingInvoker.call(Router.scala:464) ~[play_
2.11-2.3.7.jar:2.3.7]
at Routes$$anonfun$routes$$anonfun$applyOrElse.apply(routes_routing.
scala:72) ~[na:na] Caused by: java.net.SocketException: Not a
multicast address
at java.net.MulticastSocket.joinGroup(Unknown Source) ~[na:1.8.0_51]
at controllers.Application$.(Application.scala:16) ~[na:na]
at controllers.Application$.(Application.scala) ~[na:na]
at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl
y(routes_routing.scala:72) ~[na:na]
at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl
y(routes_routing.scala:72) ~[na:na] [error] application - Error while
rendering default error page scala.MatchError:
java.lang.ExceptionInInitializerError (of class java.lang.Exce
ptionInInitializerError)
at play.api.GlobalSettings$class.onError(GlobalSettings.scala:148) ~[pla
y_2.11-2.3.7.jar:2.3.7]
at play.api.DefaultGlobal$.onError(GlobalSettings.scala:206) [play_2.11-
2.3.7.jar:2.3.7]
at play.core.server.Server$class.logExceptionAndGetResult(Server.scala
:63) [play_2.11-2.3.7.jar:2.3.7]
at play.core.server.Server$$anonfun$getHandlerFor.apply(Server.scala:7
3) [play_2.11-2.3.7.jar:2.3.7]
at play.core.server.Server$$anonfun$getHandlerFor.apply(Server.scala:7
1) [play_2.11-2.3.7.jar:2.3.7] [error] application -
! Internal server error, for (HEAD) [/] ->
java.lang.NoClassDefFoundError: Could not initialize class
controllers.Applicati on$
at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl
y(routes_routing.scala:72) ~[na:na]
at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl
y(routes_routing.scala:72) ~[na:na]
at play.core.Router$HandlerInvokerFactory$$anon$$anon.call(Router.
scala:217) ~[play_2.11-2.3.7.jar:2.3.7]
at play.core.Router$Routes$TaggingInvoker.call(Router.scala:464) ~[play_
2.11-2.3.7.jar:2.3.7]
at Routes$$anonfun$routes$$anonfun$applyOrElse.apply(routes_routing.
scala:72) ~[na:na] [error] application - Error while rendering default
error page scala.MatchError: java.lang.NoClassDefFoundError: Could not
initialize class con trollers.Application$ (of class
java.lang.NoClassDefFoundError)
at play.api.GlobalSettings$class.onError(GlobalSettings.scala:148) ~[pla
y_2.11-2.3.7.jar:2.3.7]
at play.api.DefaultGlobal$.onError(GlobalSettings.scala:206) [play_2.11-
2.3.7.jar:2.3.7]
at play.core.server.Server$class.logExceptionAndGetResult(Server.scala
:63) [play_2.11-2.3.7.jar:2.3.7]
at play.core.server.Server$$anonfun$getHandlerFor.apply(Server.scala:7
3) [play_2.11-2.3.7.jar:2.3.7]
at play.core.server.Server$$anonfun$getHandlerFor.apply(Server.scala:7
1) [play_2.11-2.3.7.jar:2.3.7]
问题在于,您正试图将集群跨越 .NET 和 JVM akka 实现。他们目前彼此不兼容。原因是 .NET/JVM 套接字传输层(如小字节序和大字节序字节顺序)的一些差异以及消息序列化的问题(JVM 使用内置的 JavaSerializer,.NET 使用 JSON.NET默认)。
可能还有其他一些小问题,但结论是,目前您无法在 .NET 和 JVM 节点之间组合 akka 集群。
我不是作者,但在 nuget https://www.nuget.org/profiles/corneliutusnea 上有一个 'very very alpha version' 移植到 .NET(从 2016 年 8 月开始)的可视化工具
来源在这里 https://github.com/corneliutusnea/Akka.Visualizer
我目前正在寻找 akka.net(.NET 版本)的可视化工具。我发现 none 所以我想知道是否有任何方法可以使 akka-tree (scale) 和 akka.net 集群一起工作。我想如果两个框架都遵循相同的规范,那么它应该可以工作。是吗?
我试过在 akka-tree 中问这个问题但没有回应所以我在这里试试运气。
https://github.com/nraychaudhuri/akka-tree/issues/15
我不熟悉缩放,但我做了以下更改。
我尝试在我的 akka.net 示例中添加 UDP 配置,因为我认为这个可视化工具正在使用 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 不熟悉,但我认为它与 scale 安装有关。我确实在我的机器上安装了 scale 和 java ..
[info] Compiling 1 Scala source to D:\git\akka-tree\visualizer\target\scala-2.11 \classes... [info] play - Application started (Dev) [error] application -
! Internal server error, for (GET) [/] ->
java.lang.ExceptionInInitializerError: null at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl y(routes_routing.scala:72) ~[na:na] at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl y(routes_routing.scala:72) ~[na:na] at play.core.Router$HandlerInvokerFactory$$anon$$anon.call(Router. scala:217) ~[play_2.11-2.3.7.jar:2.3.7] at play.core.Router$Routes$TaggingInvoker.call(Router.scala:464) ~[play_ 2.11-2.3.7.jar:2.3.7] at Routes$$anonfun$routes$$anonfun$applyOrElse.apply(routes_routing. scala:72) ~[na:na] Caused by: java.net.SocketException: Not a multicast address at java.net.MulticastSocket.joinGroup(Unknown Source) ~[na:1.8.0_51] at controllers.Application$.(Application.scala:16) ~[na:na] at controllers.Application$.(Application.scala) ~[na:na] at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl y(routes_routing.scala:72) ~[na:na] at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl y(routes_routing.scala:72) ~[na:na] [error] application - Error while rendering default error page scala.MatchError: java.lang.ExceptionInInitializerError (of class java.lang.Exce ptionInInitializerError) at play.api.GlobalSettings$class.onError(GlobalSettings.scala:148) ~[pla y_2.11-2.3.7.jar:2.3.7] at play.api.DefaultGlobal$.onError(GlobalSettings.scala:206) [play_2.11- 2.3.7.jar:2.3.7] at play.core.server.Server$class.logExceptionAndGetResult(Server.scala :63) [play_2.11-2.3.7.jar:2.3.7] at play.core.server.Server$$anonfun$getHandlerFor.apply(Server.scala:7 3) [play_2.11-2.3.7.jar:2.3.7] at play.core.server.Server$$anonfun$getHandlerFor.apply(Server.scala:7 1) [play_2.11-2.3.7.jar:2.3.7] [error] application -
! Internal server error, for (HEAD) [/] ->
java.lang.NoClassDefFoundError: Could not initialize class controllers.Applicati on$ at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl y(routes_routing.scala:72) ~[na:na] at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.appl y(routes_routing.scala:72) ~[na:na] at play.core.Router$HandlerInvokerFactory$$anon$$anon.call(Router. scala:217) ~[play_2.11-2.3.7.jar:2.3.7] at play.core.Router$Routes$TaggingInvoker.call(Router.scala:464) ~[play_ 2.11-2.3.7.jar:2.3.7] at Routes$$anonfun$routes$$anonfun$applyOrElse.apply(routes_routing. scala:72) ~[na:na] [error] application - Error while rendering default error page scala.MatchError: java.lang.NoClassDefFoundError: Could not initialize class con trollers.Application$ (of class java.lang.NoClassDefFoundError) at play.api.GlobalSettings$class.onError(GlobalSettings.scala:148) ~[pla y_2.11-2.3.7.jar:2.3.7] at play.api.DefaultGlobal$.onError(GlobalSettings.scala:206) [play_2.11- 2.3.7.jar:2.3.7] at play.core.server.Server$class.logExceptionAndGetResult(Server.scala :63) [play_2.11-2.3.7.jar:2.3.7] at play.core.server.Server$$anonfun$getHandlerFor.apply(Server.scala:7 3) [play_2.11-2.3.7.jar:2.3.7] at play.core.server.Server$$anonfun$getHandlerFor.apply(Server.scala:7 1) [play_2.11-2.3.7.jar:2.3.7]
问题在于,您正试图将集群跨越 .NET 和 JVM akka 实现。他们目前彼此不兼容。原因是 .NET/JVM 套接字传输层(如小字节序和大字节序字节顺序)的一些差异以及消息序列化的问题(JVM 使用内置的 JavaSerializer,.NET 使用 JSON.NET默认)。
可能还有其他一些小问题,但结论是,目前您无法在 .NET 和 JVM 节点之间组合 akka 集群。
我不是作者,但在 nuget https://www.nuget.org/profiles/corneliutusnea 上有一个 'very very alpha version' 移植到 .NET(从 2016 年 8 月开始)的可视化工具 来源在这里 https://github.com/corneliutusnea/Akka.Visualizer