【问题标题】:Akka.net starting and stopping with no activityAkka.net 在没有活动的情况下启动和停止
【发布时间】:2015-11-18 12:39:56
【问题描述】:

我正在尝试从 Scala (2.4.11) 中的类型安全 akka actor 向 C# (1.0.4) 中的 Akka.net actor 发送消息

我的 .Net 演员有一个奇怪的问题,它一直说开始然后停止,但我不知道引擎盖下发生了什么:

一段 Akka.net 日志:

2015-11-18 16:23:57.6168|DEBUG|Akka.Remote.Transport.ProtocolStateActor|Started (Akka.Remote.Transport.ProtocolStateActor)
2015-11-18 16:24:27.6578|DEBUG|Akka.Remote.Transport.ProtocolStateActor|Stopped
2015-11-18 16:24:42.6344|DEBUG|Akka.Remote.Transport.AkkaProtocolManager|now supervising akka://converter/system/transports/akkaprotocolmanager.tcp.0/akkaProtocol-tcp%3a%2f%2fconverter%40192.168.56.1%3a60161-107
2015-11-18 16:24:42.6344|DEBUG|Akka.Remote.Transport.ProtocolStateActor|Started (Akka.Remote.Transport.ProtocolStateActor)
2015-11-18 16:25:12.6871|DEBUG|Akka.Remote.Transport.ProtocolStateActor|Stopped
2015-11-18 16:25:27.6402|DEBUG|Akka.Remote.Transport.AkkaProtocolManager|now supervising akka://converter/system/transports/akkaprotocolmanager.tcp.0/akkaProtocol-tcp%3a%2f%2fconverter%40192.168.56.1%3a60162-108
2015-11-18 16:25:27.6402|DEBUG|Akka.Remote.Transport.ProtocolStateActor|Started (Akka.Remote.Transport.ProtocolStateActor)

它在发送的每条消息上都开始/停止,但演员没有执行,我怎么可能检查发生了什么?

【问题讨论】:

    标签: c# scala akka .net-4.5 akka.net


    【解决方案1】:

    这是行不通的; Akka.NET 和 Akka 不是相互兼容的有线格式。

    这在未来可能会改变,但目前不会。

    【讨论】:

    • 目前两者的差距到底是多少?它与 .NET 和 Scala 类型系统的差异有关(意味着不能将 .NET 对象发送到 Scala,反之亦然)还是更深层次,例如消息格式本身完全不兼容。我的观点是,在当前阶段,是否可以使两者使用简单类型作为消息(如字符串和字节)进行通信?
    • 两个 VM 非常不同是一回事,但对于 Akka 内部协议,我们使用 Google Protocol Buffers,所以实际上这不是问题。从技术上讲,可以使序列化工作。然而,任何包含类名的东西都是 JVM 特定的,例如远程部署等。更可怕的问题更多是关于 semantic 等价性,因为集群等不是公开定义的协议/api,它是 . NET 实现。已尝试“匹配”,但如果没有大量测试和努力,我们无法确定它是否真的会,这需要得到客户需求的支持
    • 感谢您提供详细信息,@Konrad。事实上,我没有考虑到,在形成集群时,两个系统必须在某一点上相互检测信号,这可能涉及格式不兼容的通信。我希望他们有一天能一起工作
    猜你喜欢
    • 2015-03-07
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    相关资源
    最近更新 更多