【问题标题】:Akka (JVM): Serialize an actorref with protobuf within another messageAkka (JVM):在另一条消息中使用 protobuf 序列化 actorref
【发布时间】:2016-11-23 19:59:50
【问题描述】:

我想用 protobuf 序列化以下 scala 对象:

case class Worker(id: String, ref: ActorRef)

我的理解是 Akka 附带了一个 ProtobufSerializer,我可以使用它来从/向 ActorRef 序列化。因此,我在 proto 文件中定义了以下消息:

message Worker {
    string id = 1;
    bytes ref = 2;
}

但是,当我需要序列化这些消息时,静态方法 ProtobufSerializer 采用了我手头没有的 ExtentendActorSystem(只有通过我的 actor 的 context.system 属性的 ActorSystem)。我不确定如何将我的对象实际序列化为 protobuf,反之亦然。

【问题讨论】:

    标签: scala akka protocol-buffers


    【解决方案1】:

    我不确定在哪些情况下它是正确的,但我能够简单地将我的 ActorSystem 转换为 ExtendedActorSystem。在我的特定情况下(我将 Akka Persistence 与 Akka Singleton 一起使用),它似乎工作正常。

    【讨论】:

    • 嘿,@Canard 你是怎么解决这个问题的,我们有类似的要求,我们的消息包含 ActorRef 并且想要序列化。
    • @Canarad 您是否添加了parseFromtoByteArray 方法的自定义实现?
    • @Canarad 如果可能的话,您能否分享一下您的解决方案示例?
    • 很遗憾我没有代码了,我不在同一家公司工作。
    猜你喜欢
    • 2019-08-15
    • 2020-05-28
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    相关资源
    最近更新 更多