如何让akka-tree与akka.net集群一起工作?

时间:2015-08-27 03:50:17

标签: akka.net akka.net-cluster akka-tree

我目前正在寻找akka.net(.NET版本)的可视化工具。我没有找到,所以我想知道是否有任何方法可以让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和java ..

  

[info]编译1个Scala源代码   D:\ git \ akka-tree \ visualizer \ target \ scala-2.11 \ classes ... [info]播放    - 应用程序启动(Dev)[错误]应用程序 -

     

!内部服务器错误,对于(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]           在play.core.Router $ HandlerInvokerFactory $$ anon $ 13 $$ anon $ 14.call(路由器。   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]           在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]           在controllers.Application $。(Application.scala:16)〜[na:na]           在controllers.Application $。(Application.scala)〜[na:na]           在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] [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]           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 $ 1(Server.scala   :63)[play_2.11-2.3.7.jar:2.3.7]           at play.core.server.Server $$ anonfun $ getHandlerFor $ 4.apply(Server.scala:7   3)[play_2.11-2.3.7.jar:2.3.7]           at 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:无法初始化类   controllers.Applicati on $           在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]           在play.core.Router $ HandlerInvokerFactory $$ anon $ 13 $$ anon $ 14.call(路由器。   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]           在Routes $$ anonfun $ routes $ 1 $$ anonfun $ applyOrElse $ 1.apply(routes_routing。   scala:72)〜[na:na] [error] application - 渲染默认时出错   错误页面scala.MatchError:java.lang.NoClassDefFoundError:无法   初始化类控制器。应用程序$(类   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 $ 1(Server.scala   :63)[play_2.11-2.3.7.jar:2.3.7]           at play.core.server.Server $$ anonfun $ getHandlerFor $ 4.apply(Server.scala:7   3)[play_2.11-2.3.7.jar:2.3.7]           at play.core.server.Server $$ anonfun $ getHandlerFor $ 4.apply(Server.scala:7   1)[play_2.11-2.3.7.jar:2.3.7]

2 个答案:

答案 0 :(得分:2)

我不是作者,但是在nuget https://www.nuget.org/profiles/corneliutusnea上有一个移植到.NET(从16年8月开始)的可视化工具的'非常非常alpha版本'  来源https://github.com/corneliutusnea/Akka.Visualizer

答案 1 :(得分:1)

问题在于,您尝试跨.NET和JVM akka实现跨越集群。它们目前彼此不兼容。原因是.NET / JVM套接字传输层存在一些差异(如小端和大端字节排序)以及消息序列化问题(JVM使用内置JavaSerializer,.NET默认使用JSON.NET)。

可能还有其他一些小问题,但结论是,目前你无法在.NET和JVM节点之间组合akka集群。

相关问题